Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
16d07895
宇宙模拟器
项目概览
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看板
提交
16d07895
编写于
12月 13, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
66927fa6
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
50 addition
and
29 deletion
+50
-29
sim_scenes/featured/the_lost_planet.py
sim_scenes/featured/the_lost_planet.py
+29
-20
sim_scenes/universe_sim_scenes.py
sim_scenes/universe_sim_scenes.py
+21
-9
未找到文件。
sim_scenes/featured/the_lost_planet.py
浏览文件 @
16d07895
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
# link :https://gitcode.net/pythoncr/
# link :https://gitcode.net/pythoncr/
# python_version :3.9
# python_version :3.9
# ==============================================================================
# ==============================================================================
import
sys
import
time
import
time
from
bodies
import
Sun
,
Mercury
,
Venus
,
Earth
,
Mars
,
Moon
,
Ceres
,
Jupiter
,
Saturn
,
Uranus
,
Neptune
,
Pluto
,
Asteroids
from
bodies
import
Sun
,
Mercury
,
Venus
,
Earth
,
Mars
,
Moon
,
Ceres
,
Jupiter
,
Saturn
,
Uranus
,
Neptune
,
Pluto
,
Asteroids
...
@@ -31,7 +32,7 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -31,7 +32,7 @@ class TheLostPlanetSim(UniverseSimScenes):
# inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度
# inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度
# self.asteroids.torus_zone = 4.7, 5.5, 64
# self.asteroids.torus_zone = 4.7, 5.5, 64
self
.
moon
=
Moon
(
size_scale
=
3.5e3
,
init_position
=
[
0
,
0
,
(
0.5
+
2.5
)
*
AU
],
distance_scale
=
1.76
)
self
.
moon
=
Moon
(
size_scale
=
3.5e3
,
init_position
=
[
0
,
0
,
(
0.5
+
2.
4
5
)
*
AU
],
distance_scale
=
1.76
)
# ceres = Ceres(size_scale=3e3, distance_scale=1.7)
# ceres = Ceres(size_scale=3e3, distance_scale=1.7)
self
.
mercury
=
Mercury
(
size_scale
=
3e3
,
distance_scale
=
8.5
)
self
.
mercury
=
Mercury
(
size_scale
=
3e3
,
distance_scale
=
8.5
)
self
.
venus
=
Venus
(
size_scale
=
3e3
,
distance_scale
=
5
)
self
.
venus
=
Venus
(
size_scale
=
3e3
,
distance_scale
=
5
)
...
@@ -40,7 +41,7 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -40,7 +41,7 @@ class TheLostPlanetSim(UniverseSimScenes):
self
.
jupiter
=
Jupiter
(
size_scale
=
0.68e3
,
distance_scale
=
1.12
)
self
.
jupiter
=
Jupiter
(
size_scale
=
0.68e3
,
distance_scale
=
1.12
)
self
.
saturn
=
Saturn
(
size_scale
=
0.68e3
,
distance_scale
=
0.74
)
self
.
saturn
=
Saturn
(
size_scale
=
0.68e3
,
distance_scale
=
0.74
)
self
.
uranus
=
Uranus
(
size_scale
=
0.8e3
,
distance_scale
=
0.43
)
self
.
uranus
=
Uranus
(
size_scale
=
0.8e3
,
distance_scale
=
0.43
)
self
.
neptune
=
Neptune
(
size_scale
=
1e3
,
distance_scale
=
0.
3
)
self
.
neptune
=
Neptune
(
size_scale
=
1e3
,
distance_scale
=
0.
29
)
# self.ship = ScifiGunship(name="飞船", mass=1e30, color=(111, 140, 255),
# self.ship = ScifiGunship(name="飞船", mass=1e30, color=(111, 140, 255),
# init_position=self.mars.init_position,
# init_position=self.mars.init_position,
# init_velocity=[0, 0, 0],
# init_velocity=[0, 0, 0],
...
@@ -153,9 +154,9 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -153,9 +154,9 @@ class TheLostPlanetSim(UniverseSimScenes):
planet
=
body
planet
=
body
planet
.
alpha
=
begin_alpha
planet
.
alpha
=
begin_alpha
if
begin_alpha
>
end_alpha
:
if
begin_alpha
>
end_alpha
:
interval
=
-
abs
(
interval
)
interval
=
-
abs
(
interval
)
/
self
.
record_rate
else
:
else
:
interval
=
abs
(
interval
)
interval
=
abs
(
interval
)
/
self
.
record_rate
origin_update
=
planet
.
update
origin_update
=
planet
.
update
...
@@ -189,7 +190,7 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -189,7 +190,7 @@ class TheLostPlanetSim(UniverseSimScenes):
asteroid
.
s_angle
=
init_angle
asteroid
.
s_angle
=
init_angle
asteroid
.
init_pos
=
pos
asteroid
.
init_pos
=
pos
y
=
10
*
random
.
random
()
-
5
y
=
10
*
random
.
random
()
-
5
speed
=
random
.
random
()
/
7
+
0.2
speed
=
(
random
.
random
()
/
7
+
0.2
)
/
self
.
record_rate
def
rotation
():
def
rotation
():
angle
=
math
.
pi
*
asteroid
.
s_angle
/
180
angle
=
math
.
pi
*
asteroid
.
s_angle
/
180
...
@@ -221,7 +222,9 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -221,7 +222,9 @@ class TheLostPlanetSim(UniverseSimScenes):
# a.enabled = False
# a.enabled = False
def
one_asteroid_fade_in
(
self
):
def
one_asteroid_fade_in
(
self
):
self
.
asteroids
.
append
(
self
.
create_asteroid
(
init_angle
=
180
))
asteroid
=
self
.
create_asteroid
(
init_angle
=
180
)
asteroid
.
alpha_fade_in
=
True
self
.
asteroids
.
append
(
asteroid
)
# if not hasattr(self, "one_asteroid_fade_in_index"):
# if not hasattr(self, "one_asteroid_fade_in_index"):
# self.one_asteroid_fade_in_index = 0
# self.one_asteroid_fade_in_index = 0
# self.one_asteroid_fade_in_last_time = time.time()
# self.one_asteroid_fade_in_last_time = time.time()
...
@@ -234,22 +237,25 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -234,22 +237,25 @@ class TheLostPlanetSim(UniverseSimScenes):
# if self.one_asteroid_fade_in_index >= 4:
# if self.one_asteroid_fade_in_index >= 4:
# self.step_index += 1
# self.step_index += 1
def
asteroid_fade_in
(
self
):
def
asteroid
s
_fade_in
(
self
):
"""
"""
小行星群渐渐显示
小行星群渐渐显示
@return:
@return:
"""
"""
self
.
create_asteroids
()
self
.
create_asteroids
()
for
a
in
self
.
asteroids
:
for
a
in
self
.
asteroids
:
if
hasattr
(
a
,
"alpha_fade_in"
):
print
(
"alpha_fade_in"
)
else
:
self
.
set_alpha_animation
(
a
,
0.0
,
1.0
,
0.01
)
self
.
set_alpha_animation
(
a
,
0.0
,
1.0
,
0.01
)
def
asteroid_fade_out
(
self
):
def
asteroid
s
_fade_out
(
self
):
"""
"""
小行星群渐渐消失
小行星群渐渐消失
@return:
@return:
"""
"""
for
a
in
self
.
asteroids
:
for
a
in
self
.
asteroids
:
self
.
set_alpha_animation
(
a
,
1.0
,
0.0
,
0.01
,
is_destroy
=
Tru
e
)
self
.
set_alpha_animation
(
a
,
1.0
,
0.0
,
0.01
,
is_destroy
=
Fals
e
)
def
init_steps
(
self
):
def
init_steps
(
self
):
...
@@ -301,10 +307,13 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -301,10 +307,13 @@ class TheLostPlanetSim(UniverseSimScenes):
(
self
.
one_asteroid_fade_in
,
100
,
1
),
(
self
.
one_asteroid_fade_in
,
100
,
1
),
(
self
.
one_asteroid_fade_in
,
100
,
1
),
(
self
.
one_asteroid_fade_in
,
100
,
1
),
(
self
.
one_asteroid_fade_in
,
100
,
1
),
(
self
.
one_asteroid_fade_in
,
100
,
1
),
(
self
.
one_asteroid_fade_in
,
900
,
1
),
(
self
.
one_asteroid_fade_in
,
100
,
1
),
(
self
.
asteroid_fade_out
,
300
,
1
),
(
self
.
one_asteroid_fade_in
,
100
,
1
),
(
self
.
one_asteroid_fade_in
,
100
,
1
),
(
lambda
:
None
,
600
,
-
1
),
# (self.asteroid_fade_out, 300, 1),
# 发现小行星带
# 发现小行星带
(
self
.
asteroid_fade_in
,
900
,
1
),
(
self
.
asteroid
s
_fade_in
,
900
,
1
),
# (self.asteroid_fade_out, 900, 1),
# (self.asteroid_fade_out, 900, 1),
# 第4波行星
# 第4波行星
(
self
.
camera_back_2
,
900
,
-
1
),
(
self
.
camera_back_2
,
900
,
-
1
),
...
@@ -321,7 +330,7 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -321,7 +330,7 @@ class TheLostPlanetSim(UniverseSimScenes):
self
.
_fun_names
[
f_name
]
+=
1
self
.
_fun_names
[
f_name
]
+=
1
else
:
else
:
self
.
_fun_names
[
f_name
]
=
0
self
.
_fun_names
[
f_name
]
=
0
self
.
_steps
.
append
((
s
[
0
],
s
[
1
],
s
[
2
],
str
(
self
.
_fun_names
[
f_name
])))
self
.
_steps
.
append
((
s
[
0
],
s
[
1
]
*
self
.
record_rate
,
s
[
2
],
str
(
self
.
_fun_names
[
f_name
])))
self
.
steps
=
self
.
_steps
self
.
steps
=
self
.
_steps
def
body_orbit_the_sun
(
self
,
body
,
start_angle
,
angle_speed
=
0.5
):
def
body_orbit_the_sun
(
self
,
body
,
start_angle
,
angle_speed
=
0.5
):
...
@@ -340,21 +349,21 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -340,21 +349,21 @@ class TheLostPlanetSim(UniverseSimScenes):
x
=
body
.
orbit_radius
*
math
.
cos
(
angle
)
x
=
body
.
orbit_radius
*
math
.
cos
(
angle
)
z
=
body
.
orbit_radius
*
math
.
sin
(
angle
)
z
=
body
.
orbit_radius
*
math
.
sin
(
angle
)
body
.
planet
.
main_entity
.
position
=
Vec3
(
x
,
0
,
z
)
body
.
planet
.
main_entity
.
position
=
Vec3
(
x
,
0
,
z
)
body
.
orbit_angle
+=
angle_speed
body
.
orbit_angle
+=
angle_speed
/
self
.
record_rate
print
(
body
.
orbit_angle
)
print
(
body
.
orbit_angle
)
body
.
planet
.
update
=
orbit_update
body
.
planet
.
update
=
orbit_update
def
camera_back_1
(
self
):
def
camera_back_1
(
self
):
if
camera
.
position
[
2
]
>
-
450
:
if
camera
.
position
[
2
]
>
-
450
:
camera
.
position
+=
camera
.
right
*
0.2
camera
.
position
+=
camera
.
right
*
0.2
/
self
.
record_rate
camera
.
position
+=
camera
.
back
*
0.5
camera
.
position
+=
camera
.
back
*
0.5
/
self
.
record_rate
print
(
camera
.
position
)
print
(
camera
.
position
)
def
camera_back_2
(
self
):
def
camera_back_2
(
self
):
if
camera
.
position
[
2
]
>
-
550
:
if
camera
.
position
[
2
]
>
-
550
:
camera
.
position
+=
camera
.
right
*
0.2
camera
.
position
+=
camera
.
right
*
0.2
/
self
.
record_rate
camera
.
position
+=
camera
.
back
*
0.5
camera
.
position
+=
camera
.
back
*
0.5
/
self
.
record_rate
def
on_timer_changed
(
self
,
time_data
):
def
on_timer_changed
(
self
,
time_data
):
# camera.position += camera.right
# camera.position += camera.right
...
@@ -385,7 +394,7 @@ class TheLostPlanetSim(UniverseSimScenes):
...
@@ -385,7 +394,7 @@ class TheLostPlanetSim(UniverseSimScenes):
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
sim
=
TheLostPlanetSim
()
sim
=
TheLostPlanetSim
()
# UniverseSimScenes.set_window_size((1920, 1079), False)
# 运行前会触发 on_ready
# 运行前会触发 on_ready
UrsinaEvent
.
on_ready_subscription
(
sim
.
on_ready
)
UrsinaEvent
.
on_ready_subscription
(
sim
.
on_ready
)
# UrsinaEvent.after_ready_subscription(after_ready)
# UrsinaEvent.after_ready_subscription(after_ready)
...
...
sim_scenes/universe_sim_scenes.py
浏览文件 @
16d07895
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
# python_version :3.9
# python_version :3.9
# ==============================================================================
# ==============================================================================
from
objs
import
CoreValagaClas
from
objs
import
CoreValagaClas
import
sys
class
UniverseSimScenes
:
class
UniverseSimScenes
:
...
@@ -14,6 +15,17 @@ class UniverseSimScenes:
...
@@ -14,6 +15,17 @@ class UniverseSimScenes:
可以作为宇宙模拟场景的基类,但是不是必须的。
可以作为宇宙模拟场景的基类,但是不是必须的。
"""
"""
def
__new__
(
cls
,
*
args
,
**
kwargs
):
print
(
"参数个数"
,
len
(
sys
.
argv
))
if
len
(
sys
.
argv
)
>
1
:
UniverseSimScenes
.
set_window_size
((
1920
,
1079
),
False
)
cls
.
record_rate
=
2
else
:
cls
.
record_rate
=
1
instance
=
super
().
__new__
(
cls
,
*
args
,
**
kwargs
)
return
instance
@
staticmethod
@
staticmethod
def
create_camera_target
(
init_position
=
[
0
,
0
,
0
],
size_scale
=
1e3
):
def
create_camera_target
(
init_position
=
[
0
,
0
,
0
],
size_scale
=
1e3
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录