From 70bcc5dceca4e4da0d22902a0d2191c0f2d6f2e8 Mon Sep 17 00:00:00 2001 From: march3 Date: Fri, 29 Dec 2023 11:07:30 +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/featured/jupiter_moon_protects_earth.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/sim_scenes/featured/jupiter_moon_protects_earth.py b/sim_scenes/featured/jupiter_moon_protects_earth.py index c42a227..e1041b6 100644 --- a/sim_scenes/featured/jupiter_moon_protects_earth.py +++ b/sim_scenes/featured/jupiter_moon_protects_earth.py @@ -13,6 +13,7 @@ from common.consts import SECONDS_PER_MONTH, SECONDS_PER_YEAR, AU from sim_scenes.func import ursina_run, camera_look_at, two_bodies_colliding, create_text_panel, create_sphere_sky from simulators.ursina.entities.body_timer import TimeData, BodyTimer from simulators.ursina.entities.entity_utils import create_directional_light +from simulators.ursina.ursina_config import UrsinaConfig from simulators.ursina.ursina_event import UrsinaEvent import random import math @@ -98,6 +99,7 @@ class JupiterMoonProtectsEarthSim: init_position=pos, init_velocity=vel, gravity_only_for=gravity_only_for ) rock.set_light_disable(True) + rock.trail_color = (255, 255, 255) # 给石头一个随机旋转的方向和值 rock.rotation = [0, 0, 0] rock.rotation[random.randint(0, 2)] = random.randint(90, 200) / 100 @@ -192,6 +194,12 @@ class JupiterMoonProtectsEarthSim: j_protected_cnt, m_protected_cnt) self.text_panel.text = colliding_info + self.camera_move(time_data) + + def camera_move(self, time_data): + from ursina import camera + camera.position += camera.left * 0.1 + camera_look_at(self.sun) def on_ready(self): from ursina import application @@ -218,6 +226,9 @@ if __name__ == '__main__': # 设置计时器的最小时间单位为年 BodyTimer().min_unit = BodyTimer.MIN_UNIT_YEARS + UrsinaConfig.trail_type = "curve_line" + # UrsinaConfig.trail_type = "line" + UrsinaConfig.trail_length = 30 sim = JupiterMoonProtectsEarthSim(comet_num=30) @@ -229,7 +240,7 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(sim.bodies, SECONDS_PER_MONTH * 3, + ursina_run(sim.bodies, SECONDS_PER_MONTH * 30, position=(AU, AU * 5, -AU * 5), cosmic_bg='', show_grid=False, -- GitLab