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

Python超人-宇宙模拟器

上级 04ddaea2
......@@ -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,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册