Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
6e1c2047
宇宙模拟器
项目概览
Python_超人
/
宇宙模拟器
通知
19
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
宇宙模拟器
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
6e1c2047
编写于
4月 09, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
9d686b8f
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
39 addition
and
9 deletion
+39
-9
sim_scenes/solar_system/speed_of_light_init.py
sim_scenes/solar_system/speed_of_light_init.py
+28
-9
simulators/ursina/ui/ui_panel.py
simulators/ursina/ui/ui_panel.py
+10
-0
simulators/ursina_simulator.py
simulators/ursina_simulator.py
+1
-0
未找到文件。
sim_scenes/solar_system/speed_of_light_init.py
浏览文件 @
6e1c2047
...
@@ -10,6 +10,7 @@ from bodies import Sun, Asteroids, Body
...
@@ -10,6 +10,7 @@ from bodies import Sun, Asteroids, Body
from
common.consts
import
AU
,
LIGHT_SPEED
,
SECONDS_PER_MINUTE
,
SECONDS_PER_HOUR
from
common.consts
import
AU
,
LIGHT_SPEED
,
SECONDS_PER_MINUTE
,
SECONDS_PER_HOUR
from
sim_scenes.func
import
create_text_panel
from
sim_scenes.func
import
create_text_panel
from
simulators.ursina.entities.body_timer
import
TimeData
from
simulators.ursina.entities.body_timer
import
TimeData
from
simulators.ursina.ui.control_ui
import
ControlUI
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
from
ursina
import
camera
from
ursina
import
camera
...
@@ -99,8 +100,6 @@ class SpeedOfLightInit:
...
@@ -99,8 +100,6 @@ class SpeedOfLightInit:
if
self
.
bodies
is
None
:
if
self
.
bodies
is
None
:
raise
Exception
(
"请指定 SpeedOfLightInit.bodies"
)
raise
Exception
(
"请指定 SpeedOfLightInit.bodies"
)
# 订阅重新开始事件
# 订阅重新开始事件
UrsinaEvent
.
on_reset_subscription
(
self
.
on_reset
)
UrsinaEvent
.
on_reset_subscription
(
self
.
on_reset
)
UrsinaEvent
.
on_ready_subscription
(
self
.
on_ready
)
UrsinaEvent
.
on_ready_subscription
(
self
.
on_ready
)
...
@@ -150,9 +149,13 @@ class SpeedOfLightInit:
...
@@ -150,9 +149,13 @@ class SpeedOfLightInit:
# self.light_body.planet.scale = self.light_body.planet_scale
# self.light_body.planet.scale = self.light_body.planet_scale
def
auto_run_speed
(
self
):
def
auto_run_speed
(
self
):
"""
自动调整速度(对于空旷的位置,摄像机会进行加速)
@return:
"""
if
self
.
__camera_follow_light
!=
"SideViewActualSize"
:
if
self
.
__camera_follow_light
!=
"SideViewActualSize"
:
return
return
# 运行速度配置
run_speed_maps
=
[
run_speed_maps
=
[
{
"au"
:
0.008
,
"secs"
:
1
},
{
"au"
:
0.008
,
"secs"
:
1
},
{
"au"
:
0.36
,
"secs"
:
SECONDS_PER_MINUTE
*
2
},
{
"au"
:
0.36
,
"secs"
:
SECONDS_PER_MINUTE
*
2
},
...
@@ -165,19 +168,24 @@ class SpeedOfLightInit:
...
@@ -165,19 +168,24 @@ class SpeedOfLightInit:
{
"au"
:
1.50
,
"secs"
:
SECONDS_PER_MINUTE
*
2
},
{
"au"
:
1.50
,
"secs"
:
SECONDS_PER_MINUTE
*
2
},
{
"au"
:
1.516
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
1.516
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
1.522
,
"secs"
:
1
},
# [00:12:39] 到达 [火星] 1.52 AU
{
"au"
:
1.522
,
"secs"
:
1
},
# [00:12:39] 到达 [火星] 1.52 AU
{
"au"
:
5.1
,
"secs"
:
SECONDS_PER_HOUR
},
# {"au": 5.1, "secs": SECONDS_PER_HOUR},
{
"au"
:
5.1
,
"secs"
:
SECONDS_PER_MINUTE
*
10
},
{
"au"
:
5.182
,
"secs"
:
SECONDS_PER_MINUTE
*
2
},
{
"au"
:
5.182
,
"secs"
:
SECONDS_PER_MINUTE
*
2
},
{
"au"
:
5.192
,
"secs"
:
1
},
# [00:43:10] 到达 [木星] 5.19 AU
{
"au"
:
5.192
,
"secs"
:
1
},
# [00:43:10] 到达 [木星] 5.19 AU
{
"au"
:
9.44
,
"secs"
:
SECONDS_PER_HOUR
},
# {"au": 9.44, "secs": SECONDS_PER_HOUR},
{
"au"
:
9.44
,
"secs"
:
SECONDS_PER_MINUTE
*
20
},
{
"au"
:
9.492
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
9.492
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
9.502
,
"secs"
:
1
},
# [01:19:01] 到达 [土星] 9.5 AU
{
"au"
:
9.502
,
"secs"
:
1
},
# [01:19:01] 到达 [土星] 9.5 AU
{
"au"
:
19.15
,
"secs"
:
SECONDS_PER_HOUR
},
# {"au": 19.15, "secs": SECONDS_PER_HOUR},
{
"au"
:
19.15
,
"secs"
:
SECONDS_PER_MINUTE
*
30
},
{
"au"
:
19.192
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
19.192
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
19.202
,
"secs"
:
1
},
# [02:39:41] 到达 [天王星] 19.2 AU
{
"au"
:
19.202
,
"secs"
:
1
},
# [02:39:41] 到达 [天王星] 19.2 AU
{
"au"
:
30.67
,
"secs"
:
SECONDS_PER_HOUR
},
# {"au": 30.67, "secs": SECONDS_PER_HOUR},
{
"au"
:
30.67
,
"secs"
:
SECONDS_PER_MINUTE
*
30
},
{
"au"
:
30.692
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
30.692
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
30.702
,
"secs"
:
1
},
# [04:15:19] 到达 [海王星] 30.7 AU
{
"au"
:
30.702
,
"secs"
:
1
},
# [04:15:19] 到达 [海王星] 30.7 AU
{
"au"
:
39.52
,
"secs"
:
SECONDS_PER_HOUR
*
1.2
},
# {"au": 39.52, "secs": SECONDS_PER_HOUR * 1.2},
{
"au"
:
39.52
,
"secs"
:
SECONDS_PER_MINUTE
*
30
},
{
"au"
:
39.54
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
39.54
,
"secs"
:
SECONDS_PER_MINUTE
},
{
"au"
:
1000
,
"secs"
:
1
}
# [05:28:55] 到达 [冥王星] 39.55 AU
{
"au"
:
1000
,
"secs"
:
1
}
# [05:28:55] 到达 [冥王星] 39.55 AU
]
]
...
@@ -191,7 +199,18 @@ class SpeedOfLightInit:
...
@@ -191,7 +199,18 @@ class SpeedOfLightInit:
au_max
=
m
[
"au"
]
au_max
=
m
[
"au"
]
if
au_max
*
AU
>
light_distance
>=
au_min
*
AU
:
if
au_max
*
AU
>
light_distance
>=
au_min
*
AU
:
UrsinaConfig
.
seconds_per
=
m
[
"secs"
]
if
UrsinaConfig
.
seconds_per
!=
m
[
"secs"
]:
seconds_per
=
m
[
"secs"
]
UrsinaConfig
.
seconds_per
=
seconds_per
if
seconds_per
>=
10000
:
msg
=
f
"
{
seconds_per
/
10000
}
万"
elif
seconds_per
>=
1000
:
msg
=
f
"
{
seconds_per
/
1000
}
千"
else
:
msg
=
f
"
{
seconds_per
}
"
msg
+=
"倍光速"
ControlUI
.
current_ui
.
show_message
(
msg
,
close_time
=-
1
)
def
on_timer_changed
(
self
,
time_data
:
TimeData
):
def
on_timer_changed
(
self
,
time_data
:
TimeData
):
"""
"""
...
...
simulators/ursina/ui/ui_panel.py
浏览文件 @
6e1c2047
...
@@ -23,6 +23,7 @@ class UiPanel(WindowPanel):
...
@@ -23,6 +23,7 @@ class UiPanel(WindowPanel):
"""
"""
界面面板类
界面面板类
"""
"""
def
__init__
(
self
,
handler
:
EventHandler
,
position
=
(
0
,
0
),
enabled
=
False
,
title
=
''
):
def
__init__
(
self
,
handler
:
EventHandler
,
position
=
(
0
,
0
),
enabled
=
False
,
title
=
''
):
"""
"""
...
@@ -69,8 +70,16 @@ class UiPanel(WindowPanel):
...
@@ -69,8 +70,16 @@ class UiPanel(WindowPanel):
@param close_time: 定义显示消息框关闭时间
@param close_time: 定义显示消息框关闭时间
@return:
@return:
"""
"""
if
hasattr
(
self
,
"last_message_box"
):
destroy
(
self
.
last_message_box
)
# 创建消息框
# 创建消息框
message_box
=
Text
(
text
=
message
,
font
=
UrsinaConfig
.
CN_FONT
,
background
=
True
,
origin
=
(
0
,
0
),
y
=
.
25
)
message_box
=
Text
(
text
=
message
,
font
=
UrsinaConfig
.
CN_FONT
,
background
=
True
,
origin
=
(
0
,
0
),
y
=
.
25
)
self
.
last_message_box
=
message_box
if
close_time
<=
0
:
return
message_box
close_time
=
close_time
*
application
.
time_scale
close_time
=
close_time
*
application
.
time_scale
# 定义关闭函数
# 定义关闭函数
...
@@ -82,3 +91,4 @@ class UiPanel(WindowPanel):
...
@@ -82,3 +91,4 @@ class UiPanel(WindowPanel):
Func
(
close_message
)
Func
(
close_message
)
)
)
s
.
start
()
s
.
start
()
return
message_box
simulators/ursina_simulator.py
浏览文件 @
6e1c2047
...
@@ -245,6 +245,7 @@ class UrsinaSimulator(Simulator):
...
@@ -245,6 +245,7 @@ class UrsinaSimulator(Simulator):
# ui = UrsinaUI()
# ui = UrsinaUI()
ctl
=
ControlUI
(
ControlHandler
(),
position
=
(
0.6
,
0.5
))
ctl
=
ControlUI
(
ControlHandler
(),
position
=
(
0.6
,
0.5
))
ControlUI
.
current_ui
=
ctl
if
self
.
show_timer
:
if
self
.
show_timer
:
self
.
create_timer
()
self
.
create_timer
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录