提交 c9b1160a 编写于 作者: 三月三net's avatar 三月三net

Python超人-宇宙模拟器

上级 c1bf0019
......@@ -138,7 +138,7 @@ class SolarSystemRealitySim(UniverseSimScenes):
@return:
"""
# 运行前触发
self.set_window_size((1920, 1079), False)
self.set_window_size((1919, 1080), False)
self.sky = create_sphere_sky(scale=80000)
......@@ -280,7 +280,8 @@ class SolarSystemRealitySim(UniverseSimScenes):
lambda: self.recover_body_scale([self.jupiter, self.saturn]),
lambda: self.recover_body_scale([self.uranus, self.neptune]),
lambda: self.recover_sky(),
lambda: self.recover_run()
# lambda: self.recover_run(),
self.set_bodies_as_real_scale_animation
]
def enabled_orbit_line(self, orbit_line):
......@@ -368,6 +369,26 @@ class SolarSystemRealitySim(UniverseSimScenes):
ext_fun_for_method(body.planet, after_run_fun=update_scale)
def set_body_as_real_scale_animation(self, body):
UrsinaConfig.run_speed_factor = 0.01
body.planet.origin_update = body.planet.update
size_scale, scale_x = self.body_scale_dict[body]
scale_inc = (scale_x - scale_x/size_scale) / 200.0
# scale_inc = (scale_x / size_scale) / 10.0
def update_scale():
planet_scale_x = body.planet.scale_x
planet_scale_x -= scale_inc
if planet_scale_x <= scale_x / size_scale:
planet_scale_x = scale_x / size_scale
body.planet.update = lambda: None # body.planet.origin_update
body.planet.scale = planet_scale_x # scale_x / size_scale
body.planet.update = update_scale
# ext_fun_for_method(body.planet, after_run_fun=update_scale)
def set_bodies_as_real_scale(self):
self.save_body_scale()
for body in self.bodies:
......@@ -380,6 +401,18 @@ class SolarSystemRealitySim(UniverseSimScenes):
self.sky.alpha = 0
def set_bodies_as_real_scale_animation(self):
# self.save_body_scale()
for body in self.bodies:
self.set_body_as_real_scale_animation(body)
# for orbit_line in self.orbit_lines:
# orbit_line.origin_alpha = orbit_line.alpha
# # orbit_line.alpha = 0
# orbit_line.enabled = False
self.sky.alpha = 0
def save_body_scale(self):
self.body_scale_dict = {}
for body in self.bodies:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册