From f87304ac79fc25c9c15f4888c98eda9e481a5e6b Mon Sep 17 00:00:00 2001 From: march3 Date: Fri, 27 Oct 2023 12:28:22 +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/tri_bodies/two_way_foil.py | 11 ++++++++--- simulators/ursina_simulator.py | 5 +++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/sim_scenes/tri_bodies/two_way_foil.py b/sim_scenes/tri_bodies/two_way_foil.py index 0db4dc4..5b45f9d 100644 --- a/sim_scenes/tri_bodies/two_way_foil.py +++ b/sim_scenes/tri_bodies/two_way_foil.py @@ -66,8 +66,8 @@ class TwoWayFoilSim: self.two_way_foil = QuadObj(texture='two_way_foil.png', # size_scale=4e7, size_scale=1e7, - init_velocity=[0, -6, 150], - init_position=[0, 0.5 * AU, -10 * AU]) \ + init_velocity=[0, -50, 60], + init_position=[0, 5 * AU, -6 * AU]) \ .set_light_disable(True).set_ignore_gravity(True) # 不断扩展的圆形二向箔 self.two_way_foil_circle = CircleObj(texture="two_way_foil_circle.png", @@ -173,7 +173,8 @@ class TwoWayFoilSim: # 对Y轴进行压平动画,如果压平大小不足 1/50,则继续压缩,直到压缩到 1/50 就不压缩了 # (如果觉得 1/50 的厚度压的不够,还可以继续压缩,基本上就够了) - if planet.scale_y_v > planet.init_scale_y / 50: + # if planet.scale_y_v > planet.init_scale_y / 50: + if planet.scale_y_v > 0.5: planet.scale_y_v /= 1.01 else: self.gen_pixcel_image(planet) @@ -223,6 +224,10 @@ class TwoWayFoilSim: def two_way_foil_update(): target = self.get_target() + if target is self.sun: + # 关闭太阳的光晕 + self.sun.hide_children() + # 让实体A朝向实体B # self.two_way_foil.planet.look_at(target) if target is not None: diff --git a/simulators/ursina_simulator.py b/simulators/ursina_simulator.py index 6154478..c38d5cf 100644 --- a/simulators/ursina_simulator.py +++ b/simulators/ursina_simulator.py @@ -92,6 +92,10 @@ class UrsinaSimulator(Simulator): def body_visibled(): return body.planet.enabled + def hide_children(): + for c in body.planet.children: + c.enabled = False + # Explosion animation def body_explode(target=None, scale=1, fps=6): # from panda3d.core import GeomUtils @@ -144,6 +148,7 @@ class UrsinaSimulator(Simulator): body.set_visible = body_visible body.explode = body_explode body.visibled = body_visibled + body.hide_children = hide_children # def get_bodies_max_distance(self, body_views): # max_distance = 0 -- GitLab