diff --git a/sim_scenes/tri_bodies/two_way_foil.py b/sim_scenes/tri_bodies/two_way_foil.py index 0db4dc43a88d720dc52945436c12dab9517e9ac6..5b45f9dd83cacffae14d7a8bf6de5a38ab00b2f8 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 61544786752c45e968a0078a973f1253f3f03d76..c38d5cf68a81e3347aba12bfdcf6e0917a090481 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