From 64cffa206bd163c488ed37b27a1f986355acf321 Mon Sep 17 00:00:00 2001 From: march3 Date: Fri, 1 Dec 2023 16:08:25 +0800 Subject: [PATCH] =?UTF-8?q?Python=E8=B6=85=E4=BA=BA-=E5=AE=87=E5=AE=99?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sim_scenes/featured/wormhole_sim_v2.py | 51 ++++++++++++++++++++++---- tools/sim_video_cap.py | 3 +- 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/sim_scenes/featured/wormhole_sim_v2.py b/sim_scenes/featured/wormhole_sim_v2.py index ff34a08..605266a 100644 --- a/sim_scenes/featured/wormhole_sim_v2.py +++ b/sim_scenes/featured/wormhole_sim_v2.py @@ -34,9 +34,10 @@ class WormholeInfo: camera_init_speed: int = 100 camera_target_speed: int = 1200 camera_target_max_speed: int = 1500 + camera_target_acc_speed: float = 1.02 camera_forward_speed: int = - 0.1 camera_max_speed: int = 1500 - camera_acc_speed: int = 1.02 + camera_acc_speed: float = 1.02 camera_forward_acc_speed: int = 0.01 size_factor: float = 16 rotation_x: float = None @@ -133,7 +134,8 @@ class WormholeSim(UniverseSimScenes): self.camera_target = CoreValagaClas(name="摄像机镜头", mass=1e30, color=(111, 140, 255), # init_position=[0, 0, 0], # init_position=[D, 0, -D], - init_position=[0, D * 1.15, -D * 2.05], + # init_position=[0, D * 1.15, -D * 2.05], + init_position=[0, D * 1.2, -D * 1.90], init_velocity=[0, 0, 0], # texture="core_valaga_clas_light.jpg", # size_scale=self.SIZE_SCALE * 1e3 @@ -222,6 +224,9 @@ class WormholeSim(UniverseSimScenes): # application.time_scale = 0.0001 # application.time_scale = 0.0005 application.time_scale = 0.001 + application.time_scale = 0.001 + + self.app_time_scale_factor = application.time_scale / 0.001 # camera.scale = 1000 # camera.parent = camera_target.planet # camera.rotation_x = 90 @@ -233,12 +238,41 @@ class WormholeSim(UniverseSimScenes): camera.forward_speed = 0 def get_wormhole_data(self, data_name, default_val=None, universe=None): + # camera_target_init_speed: int = 100 + # camera_init_speed: int = 100 + # camera_target_speed: int = 1200 + # camera_target_max_speed: int = 1500 + + # camera_target_acc_speed: int = 1.02 + # camera_forward_speed: int = - 0.1 + + # camera_max_speed: int = 1500 + # camera_acc_speed: int = 1.02 + # camera_forward_acc_speed: int = 0.01 + # size_factor: float = 16 + # rotation_x: float = None + # rotation_y: float = None + # rotation_z: float = None + # around_max_count: int = 400 + # around_max_speed: int = -100 + # around_min_speed: int = 100 + # around_direction: str = "right" + # around_acc_speed: int = -1.5 + if data_name in ["camera_init_speed", "camera_forward_speed", "camera_max_speed"]: + scale_factor = self.app_time_scale_factor + else: + scale_factor = 1 + def ret_value(): if default_val is None: if data_name in self.wormholeinfo_default_vals.keys(): - return self.wormholeinfo_default_vals[data_name] - - return default_val + val = self.wormholeinfo_default_vals[data_name] + if val is None: + return None + return val * scale_factor + if default_val is None: + return None + return default_val * scale_factor if universe is None: universe = self.current_universe @@ -253,7 +287,7 @@ class WormholeSim(UniverseSimScenes): if val is None: return ret_value() - return val + return val * scale_factor def universe_reset(self): @@ -286,7 +320,7 @@ class WormholeSim(UniverseSimScenes): self.camera_target.speed = self.get_wormhole_data("camera_target_init_speed") camera.speed = self.get_wormhole_data("camera_init_speed") - if self.exit_app: + if self.exit_app and self.current_idx == 2: print("结束") exit(0) @@ -547,6 +581,7 @@ class WormholeSim(UniverseSimScenes): camera_max_speed = self.get_wormhole_data("camera_max_speed") camera_acc_speed = self.get_wormhole_data("camera_acc_speed") + camera_target_acc_speed = self.get_wormhole_data("camera_target_acc_speed") camera_target_max_speed = self.get_wormhole_data("camera_target_max_speed", ) if self.camera_target.go_target is not None: @@ -562,7 +597,7 @@ class WormholeSim(UniverseSimScenes): self.camera_target.speed * time.dt) # 摄像机镜头加速度计算(摄像机镜头圆滑效果),并对摄像机镜头移动速度进行限制 - self.camera_target.speed *= camera_acc_speed + self.camera_target.speed *= camera_target_acc_speed if self.camera_target.speed > camera_target_max_speed: self.camera_target.speed = camera_target_max_speed diff --git a/tools/sim_video_cap.py b/tools/sim_video_cap.py index 58a6582..59b78ab 100644 --- a/tools/sim_video_cap.py +++ b/tools/sim_video_cap.py @@ -108,7 +108,8 @@ def sim_window_screen_shot(wait_ses=-1, retry_times=3): return img if wait_ses < 0: return None - time.sleep(0.01) + if wait_ses > 0: + time.sleep(0.01) times -= 1 if times <= 0: return None -- GitLab