diff --git a/sim_scenes/tri_bodies/two_way_foil.py b/sim_scenes/tri_bodies/two_way_foil.py index ad516c966a383415738feaaf198e36e89746d004..0f2e7e68fdbb7cde9daea8f53c452026e191d050 100644 --- a/sim_scenes/tri_bodies/two_way_foil.py +++ b/sim_scenes/tri_bodies/two_way_foil.py @@ -6,7 +6,8 @@ # link :https://gitcode.net/pythoncr/ # python_version :3.9 # ============================================================================== - +import time +import datetime from bodies import Sun, Earth, Moon from objs import CoreValagaClas, SciFiBomber, WaterDrop, QuadObj, CircleObj @@ -204,10 +205,22 @@ class TwoWayFoilSim: # self.sun.two_dim.planet.init_scale += 0.05 self.two_way_foil_circle.planet.init_scale += 0.8 self.blink(self.sun.two_dim) - for b in self.three_dim_bodies: - if two_bodies_colliding(self.two_way_foil_circle, b): - b.planet.enabled = False - b.two_dim.planet.enabled = True + # 二维化延时的时间 + two_way_delay_times = [0.5, # 太阳 + 0.5, 0.8, 1.0, # 水星 金星 地球 + 1.2, 2.0, 3.0, # 火星 木星 土星 + 4.0, 5.0, 6.5] # 天王星 海王星 冥王星 + for idx, b in enumerate(self.three_dim_bodies): + if hasattr(b, "two_way_time"): + if b.two_way_time is not None: + if time.time() - b.two_way_time > two_way_delay_times[idx]: + b.planet.enabled = False + b.two_dim.planet.enabled = True + b.two_way_time = None + elif two_bodies_colliding(self.two_way_foil_circle, b): + b.two_way_time = time.time() + # b.planet.enabled = False + # b.two_dim.planet.enabled = True if b.two_dim.planet.enabled: # b.two_dim.planet.init_scale += 0.05 self.blink(b.two_dim)