diff --git a/sim_scenes/science/jupiter_rocks.py b/sim_scenes/science/jupiter_rocks.py index ff9239d1b54880b95c9d1c3754fcaa066cfce71e..f2ea1632ddb4078550e971dd0ee0a0cefb6f8817 100644 --- a/sim_scenes/science/jupiter_rocks.py +++ b/sim_scenes/science/jupiter_rocks.py @@ -22,7 +22,8 @@ if __name__ == '__main__': # 木星在中心位置 jupiter = Jupiter(init_position=[0, 0, 0], init_velocity=[0, 0, 0], - rotation_speed=0, size_scale=1) + # rotation_speed=0, + size_scale=1) bodies = [jupiter] rocks = [] diff --git a/simulators/ursina_simulator.py b/simulators/ursina_simulator.py index 390c010b4fcf331c40e58d8a91ed234627e4342a..badc0caa9398abd3f088773357e1c817244fe7a9 100644 --- a/simulators/ursina_simulator.py +++ b/simulators/ursina_simulator.py @@ -97,7 +97,7 @@ class UrsinaSimulator(Simulator): explosion_file = os.path.join(explosion_file, "explosion") # volume = body.planet.model.volume volume = pow(body.planet.model.get_bounds().volume, 1 / 3) / 2000 - ani = Animation(explosion_file, + explode_ani = Animation(explosion_file, position=body.planet.position, scale=volume * 2, fps=6, loop=False, autoplay=True) @@ -105,11 +105,15 @@ class UrsinaSimulator(Simulator): if target is not None: if hasattr(target, "planet"): if hasattr(target.planet, "main_entity"): - ani.look_at(target.planet.main_entity) + explode_ani.world_parent = target.planet.main_entity + explode_ani.look_at(target.planet.main_entity) else: - ani.look_at(target.planet) + explode_ani.world_parent = target.planet + explode_ani.look_at(target.planet) else: - ani.look_at(target) + explode_ani.world_parent = target + explode_ani.look_at(target) + return explode_ani body.look_at = body_look_at body.set_visible = body_visible