From 76293ff07f9417bfc02f621f47aef6fff6104f97 Mon Sep 17 00:00:00 2001 From: march3 Date: Sat, 21 Oct 2023 17:02:19 +0800 Subject: [PATCH] =?UTF-8?q?Python=E8=B6=85=E4=BA=BA-=E5=AE=87=E5=AE=99?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sim_scenes/tri_bodies/two_way_foil.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/sim_scenes/tri_bodies/two_way_foil.py b/sim_scenes/tri_bodies/two_way_foil.py index ad516c9..0f2e7e6 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) -- GitLab