From b6ef713a9ef0f48e0ce4d377f4307b09e015dccb Mon Sep 17 00:00:00 2001 From: march3 Date: Fri, 21 Apr 2023 08:48:09 +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 --- common/system.py | 14 +++++++------- sim_scenes/science/earth_seasons.py | 11 +++++------ simulators/ursina/entities/entity_utils.py | 1 + 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/common/system.py b/common/system.py index bc10b68..f2f3294 100644 --- a/common/system.py +++ b/common/system.py @@ -165,16 +165,16 @@ class System(object): return True # self.bodies = list(filter(valid_body, self.bodies)) - - for body1 in self.bodies: - if body1.ignore_mass: - continue + valid_bodies = list(filter(lambda b:not b.ignore_mass, self.bodies)) + for body1 in valid_bodies: + # if body1.ignore_mass: + # continue if not valid_body(body1): continue acceleration = np.zeros(3) - for body2 in self.bodies: - if body2.ignore_mass: - continue + for body2 in valid_bodies: + # if body2.ignore_mass: + # continue if self.max_distance > 0: if calculate_distance(body1.position) > self.max_distance: # 超过了max_distance距离,则消失 body1.appeared = False diff --git a/sim_scenes/science/earth_seasons.py b/sim_scenes/science/earth_seasons.py index b9a9960..6d9c79d 100644 --- a/sim_scenes/science/earth_seasons.py +++ b/sim_scenes/science/earth_seasons.py @@ -8,7 +8,7 @@ # ============================================================================== from bodies import Sun, Earth from common.consts import SECONDS_PER_WEEK, SECONDS_PER_DAY, AU -from sim_scenes.func import ursina_run +from sim_scenes.func import ursina_run, camera_look_at from simulators.ursina.entities.body_timer import TimeData from simulators.ursina.ursina_event import UrsinaEvent from ursina import camera @@ -77,15 +77,14 @@ if __name__ == '__main__': """ for e in [earth_1, earth_2, earth_3, earth_4]: if term_name == e.name: - e.planet.name_text.enabled = False + e.name_text.enabled = False else: - e.planet.name_text.enabled = True + e.name_text.enabled = True def on_timer_changed(time_data: TimeData): # 摄像机始终看向移动的地球 - camera.look_at(earth.planet) - camera.rotation_z = 0 + camera_look_at(earth, rotation_z=0) # 根据角度范围判断,显示中国农历24节气 for info in solar_terms_angles: if info[1] <= camera.rotation_y < info[2]: @@ -93,7 +92,7 @@ if __name__ == '__main__': # 控制4个透明地球文本是否显示,防止地球文字的叠加 earth_text_dispaly(term_name) # 地球名称文字显示为相应的节气 - earth.planet.name_text.text = term_name + earth.name_text.text = term_name # print(camera.rotation_y) diff --git a/simulators/ursina/entities/entity_utils.py b/simulators/ursina/entities/entity_utils.py index 152f3e0..617540a 100644 --- a/simulators/ursina/entities/entity_utils.py +++ b/simulators/ursina/entities/entity_utils.py @@ -41,6 +41,7 @@ def create_name_text(parent): name_text.set_light_off() name_text.color = color.rgba(text_color[0], text_color[1], text_color[2], 1) parent.name_text = name_text + parent.body.name_text = name_text return name_text -- GitLab