From 3df3827c9b35fb9e6bd50424dd259d6e9c2d5e2f Mon Sep 17 00:00:00 2001 From: march3 Date: Tue, 14 Nov 2023 16:41:40 +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 --- objs/camera_target.py | 17 ++++++++++++++++- sim_scenes/solar_system/halley_comet_sim.py | 7 +++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/objs/camera_target.py b/objs/camera_target.py index f946ad3..2362e5f 100644 --- a/objs/camera_target.py +++ b/objs/camera_target.py @@ -13,13 +13,15 @@ class CameraTarget(Obj): """ 摄像机目标 """ + targets = {} def __init__(self, name="摄像机目标", mass=5.97237e24, + ct_id=None, init_position=[0, 0, 0], init_velocity=[0, 0, 0], texture="", size_scale=1.0, distance_scale=1.0, ignore_mass=False, density=1e3, color=(7, 0, 162), - trail_color=None, trail_scale_factor=0.2, show_name=False, + trail_color=None, trail_scale_factor=0.2, show_name=True, parent=None, gravity_only_for=[]): params = { "name": name, @@ -42,6 +44,19 @@ class CameraTarget(Obj): super().__init__(**params) self.set_ignore_gravity(True) self.set_light_disable(True) + if ct_id is None: + self.ct_id = self.gen_ct_id() + else: + self.ct_id = ct_id + + self.targets[self.ct_id] = self + + def gen_ct_id(self): + if not hasattr(CameraTarget, "CT_IDX"): + CameraTarget.CT_IDX = 1 + else: + CameraTarget.CT_IDX += 1 + return CameraTarget.CT_IDX if __name__ == '__main__': diff --git a/sim_scenes/solar_system/halley_comet_sim.py b/sim_scenes/solar_system/halley_comet_sim.py index b2f174d..921490d 100644 --- a/sim_scenes/solar_system/halley_comet_sim.py +++ b/sim_scenes/solar_system/halley_comet_sim.py @@ -58,6 +58,13 @@ class HalleyCometSim(HalleyCometSimBase): self.bodies.append(self.halley_comet) + # from objs import CameraTarget + # + # self.bodies.append(CameraTarget(size_scale=2e8, init_position=[0, 0, 0], color=(255, 0, 0))) + # self.bodies.append(CameraTarget(size_scale=2e8, init_position=[5 * AU, 0, 0], color=(255, 255, 0))) + + # print(CameraTarget.targets) + def init_settings(self): """ 初始化设置 -- GitLab