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

Python超人-宇宙模拟器

上级 deadd2c8
...@@ -112,6 +112,8 @@ def ursina_run(bodies, ...@@ -112,6 +112,8 @@ def ursina_run(bodies,
cosmic_bg=None, cosmic_bg=None,
bg_music=None, bg_music=None,
show_grid=True, show_grid=True,
show_camera_info=True,
show_control_info=True,
grid_position=None, grid_position=None,
grid_scale=None, grid_scale=None,
show_trail=False, show_trail=False,
...@@ -129,6 +131,8 @@ def ursina_run(bodies, ...@@ -129,6 +131,8 @@ def ursina_run(bodies,
@param cosmic_bg: 宇宙背景图片 @param cosmic_bg: 宇宙背景图片
@param bg_music: 背景音乐 @param bg_music: 背景音乐
@param show_grid: 是否显示空间网格 @param show_grid: 是否显示空间网格
@param show_camera_info: 是否显示摄像机信息面板
@param show_control_info: 是否显示控制信息面板
@param show_trail: 是否显示拖尾 @param show_trail: 是否显示拖尾
@param show_name: 是否显示天体名称 @param show_name: 是否显示天体名称
@param show_timer: 是否显示计时器 @param show_timer: 是否显示计时器
...@@ -158,9 +162,9 @@ def ursina_run(bodies, ...@@ -158,9 +162,9 @@ def ursina_run(bodies,
view_azimuth = 0 # 暂时未用 view_azimuth = 0 # 暂时未用
player = UrsinaPlayer(position, view_azimuth, simulator.ursina_views) player = UrsinaPlayer(position, view_azimuth, simulator.ursina_views)
if save_as_video: # if save_as_video:
from common.video_recorder import VideoRecorder # from common.video_recorder import VideoRecorder
vr = VideoRecorder() # vr = VideoRecorder()
def callback_update(): def callback_update():
UrsinaEvent.on_application_run() UrsinaEvent.on_application_run()
...@@ -169,13 +173,17 @@ def ursina_run(bodies, ...@@ -169,13 +173,17 @@ def ursina_run(bodies,
if ursina_view.appeared: if ursina_view.appeared:
ursina_view.update() ursina_view.update()
if save_as_video: # if save_as_video:
vr.screenshot() # vr.screenshot()
import sys import sys
from simulators.ursina.ursina_config import UrsinaConfig from simulators.ursina.ursina_config import UrsinaConfig
from simulators.ursina.ursina_event import UrsinaEvent from simulators.ursina.ursina_event import UrsinaEvent
sys.modules["__main__"].update = callback_update sys.modules["__main__"].update = callback_update
UrsinaConfig.show_camera_info = show_camera_info
UrsinaConfig.show_control_info = show_control_info
if show_trail: if show_trail:
UrsinaConfig.show_trail = show_trail UrsinaConfig.show_trail = show_trail
simulator.run(dt, simulator.run(dt,
......
...@@ -100,8 +100,8 @@ def on_timer_changed(time_data: TimeData): ...@@ -100,8 +100,8 @@ def on_timer_changed(time_data: TimeData):
init.text_panel.text = text.replace("${speed}", str(round(velocity / LIGHT_SPEED, 1)) + "倍光速") init.text_panel.text = text.replace("${speed}", str(round(velocity / LIGHT_SPEED, 1)) + "倍光速")
init._3d_card.switch_color() init._3d_card.switch_color()
light_ship.switch_position() light_ship.switch_position()
if time_data.total_seconds > 20: # if time_data.total_seconds > 20:
wait_for(0.3) # wait_for(0.03)
# 订阅重新开始事件 # 订阅重新开始事件
...@@ -153,7 +153,10 @@ init.body_arrived = body_arrived ...@@ -153,7 +153,10 @@ init.body_arrived = body_arrived
ursina_run(bodies, 10, ursina_run(bodies, 10,
position=init.camera_position, position=init.camera_position,
# show_trail=init.show_trail, # show_trail=init.show_trail,
show_timer=True, # show_timer=True,
show_camera_info=False,
show_control_info=False,
timer_enabled=True,
view_closely=init.view_closely, view_closely=init.view_closely,
# bg_music="sounds/interstellar.mp3" # bg_music="sounds/interstellar.mp3"
) )
...@@ -33,12 +33,16 @@ class ControlHandler(EventHandler): ...@@ -33,12 +33,16 @@ class ControlHandler(EventHandler):
self.settings_handler = Entity(ignore_paused=True) self.settings_handler = Entity(ignore_paused=True)
self.settings_handler.input = self.settings_handler_input self.settings_handler.input = self.settings_handler_input
key_info_str = "方位控制[键盘QWEASD]+[鼠标右键],按[空格]更多控制" key_info_str = "方位控制[键盘QWEASD]+[鼠标右键],按[空格]更多控制"
key_info = Text(text=key_info_str, font=UrsinaConfig.CN_FONT, position=(-1, 0.5), origin=(-1, 1), if UrsinaConfig.show_control_info:
background=True) key_info = Text(text=key_info_str, font=UrsinaConfig.CN_FONT, position=(-1, 0.5), origin=(-1, 1),
background=True)
self.camera_info = Text(text="", scale=0.8, position=(0, -0.45), origin=(0, 1), self.camera_info = Text(text="", scale=0.8, position=(0, -0.45), origin=(0, 1),
background=False) background=False)
if not UrsinaConfig.show_camera_info:
self.camera_info.enabled = False
def camera_update(self): def camera_update(self):
pos = camera.position # WS => [2] pos = camera.position # WS => [2]
w_pos = camera.world_rotation # 鼠标右键 w_pos = camera.world_rotation # 鼠标右键
......
...@@ -35,6 +35,9 @@ class UrsinaConfig: ...@@ -35,6 +35,9 @@ class UrsinaConfig:
__on_reset_funcs = [] __on_reset_funcs = []
show_trail = False show_trail = False
show_camera_info = True
show_control_info = True
# 拖尾球体的数量 # 拖尾球体的数量
trail_length = 100 trail_length = 100
# 拖尾的类型(球体、线条) # 拖尾的类型(球体、线条)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册