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

Python超人-宇宙模拟器

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