Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
dbc6397e
宇宙模拟器
项目概览
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看板
提交
dbc6397e
编写于
7月 03, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
6652fbf8
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
25 addition
and
15 deletion
+25
-15
sim_scenes/science/speed_of_light_3d.py
sim_scenes/science/speed_of_light_3d.py
+25
-15
未找到文件。
sim_scenes/science/speed_of_light_3d.py
浏览文件 @
dbc6397e
...
...
@@ -17,7 +17,8 @@ from simulators.ursina.entities.body_timer import TimeData
from
simulators.ursina.entities.entity_utils
import
get_value_direction_vectors
from
simulators.ursina.ursina_event
import
UrsinaEvent
camera_follow_light
=
'ForwardView'
# 摄像机跟随光,方向是向前看
camera_follow_light
=
None
# camera_follow_light = 'ForwardView' # 摄像机跟随光,方向是向前看
# 实例化一个初始化对象(订阅事件,记录到达每个行星所需要的时间)
init
=
SpeedOfLightInit
(
camera_follow_light
)
...
...
@@ -26,6 +27,14 @@ init = SpeedOfLightInit(camera_follow_light)
# 创建太阳系天体(忽略质量,引力无效,初速度全部为0)
bodies
=
create_solar_system_bodies
(
ignore_mass
=
True
,
init_velocity
=
[
0
,
0
,
0
])
distance_scales
=
[
1
,
2.4
,
2.05
,
2.03
,
2.1
,
1.8
,
0.72
,
0.6
,
0.40
,
0.30
,
0.26
]
for
idx
,
body
in
enumerate
(
bodies
):
body
.
distance_scale
=
distance_scales
[
idx
]
if
idx
>
0
:
body
.
init_position
[
0
]
=
-
body
.
radius
*
body
.
size_scale
body
.
init_position
[
1
]
=
-
body
.
diameter
*
body
.
size_scale
if
len
(
sys
.
argv
)
>
1
:
camera_pos
=
sys
.
argv
[
1
].
replace
(
"_"
,
""
)
else
:
...
...
@@ -81,18 +90,18 @@ UrsinaEvent.on_timer_changed_subscription(on_timer_changed)
def
body_arrived
(
body
):
# 到达每个行星都会触发,对光速飞船进行加速,超光速前进(使用未来曲率引擎技术)
if
body
.
name
==
"火星"
:
# 到达火星,加速前进,并进行攀升
light_ship
.
acceleration
=
[
0
,
35
,
3
00
]
elif
body
.
name
==
"木星"
:
# 到达木星,加速前进,并进行下降
light_ship
.
acceleration
=
[
0
,
-
100
,
2
00
]
elif
body
.
name
==
"土星"
:
# 到达土星,加速前进,并进行攀升
light_ship
.
acceleration
=
[
0
,
55
,
20
0
]
elif
body
.
name
==
"天王星"
:
# 到达天王星,加速前进,并进行下降
light_ship
.
acceleration
=
[
0
,
-
50
,
20
0
]
elif
body
.
name
==
"海王星"
:
# 到达海王星,加速前进,并进行攀升
light_ship
.
acceleration
=
[
-
3
,
48
,
3
00
]
el
if
body
.
name
==
"冥王星"
:
#
#
到达每个行星都会触发,对光速飞船进行加速,超光速前进(使用未来曲率引擎技术)
#
if body.name == "火星": # 到达火星,加速前进,并进行攀升
# light_ship.acceleration = [120, 150, 10
00]
#
elif body.name == "木星": # 到达木星,加速前进,并进行下降
# light_ship.acceleration = [-200, -600, 50
00]
#
elif body.name == "土星": # 到达土星,加速前进,并进行攀升
# light_ship.acceleration = [-150, 100,
0]
#
elif body.name == "天王星": # 到达天王星,加速前进,并进行下降
# light_ship.acceleration = [0, 200,
0]
#
elif body.name == "海王星": # 到达海王星,加速前进,并进行攀升
# light_ship.acceleration = [150, -550, -25
00]
if
body
.
name
==
"冥王星"
:
exit
(
0
)
# print(body)
...
...
@@ -116,9 +125,10 @@ init.body_arrived = body_arrived
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run
(
bodies
,
5
,
ursina_run
(
bodies
,
10
,
position
=
init
.
camera_position
,
# show_trail=init.show_trail,
show_timer
=
True
,
view_closely
=
init
.
view_closely
,
bg_music
=
"sounds/interstellar.mp3"
)
# bg_music="sounds/interstellar.mp3"
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录