Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
ba7f7a13
宇宙模拟器
项目概览
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看板
提交
ba7f7a13
编写于
11月 24, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
6aa88f03
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
77 addition
and
75 deletion
+77
-75
bodies/universe_body.py
bodies/universe_body.py
+1
-1
sim_lab/wormhole_sim.py
sim_lab/wormhole_sim.py
+76
-74
未找到文件。
bodies/universe_body.py
浏览文件 @
ba7f7a13
...
@@ -74,4 +74,4 @@ def create_universe_body(name, texture, size_scale=1.0, init_position=[0, 0, 0],
...
@@ -74,4 +74,4 @@ def create_universe_body(name, texture, size_scale=1.0, init_position=[0, 0, 0],
"texture"
:
texture
,
"texture"
:
texture
,
"size_scale"
:
size_scale
,
"size_scale"
:
size_scale
,
}
}
return
UniverseBody
(
**
params
)
return
UniverseBody
(
**
params
)
.
set_resolution
(
50
)
sim_lab/wormhole_sim.py
浏览文件 @
ba7f7a13
...
@@ -31,105 +31,55 @@ class WormholeInfo:
...
@@ -31,105 +31,55 @@ class WormholeInfo:
position
:
list
[
float
]
=
field
(
default_factory
=
[
0
,
0
,
0
])
position
:
list
[
float
]
=
field
(
default_factory
=
[
0
,
0
,
0
])
camera_target_init_speed
:
int
=
100
camera_target_init_speed
:
int
=
100
camera_init_speed
:
int
=
100
camera_init_speed
:
int
=
100
camera_target_speed
:
int
=
20
00
camera_target_speed
:
int
=
12
00
camera_target_max_speed
:
int
=
20
00
camera_target_max_speed
:
int
=
15
00
camera_forward_speed
:
int
=
-
0.1
camera_forward_speed
:
int
=
-
0.1
camera_max_speed
:
int
=
40
00
camera_max_speed
:
int
=
15
00
camera_acc_speed
:
int
=
1.02
camera_acc_speed
:
int
=
1.02
camera_forward_acc_speed
:
int
=
0.01
camera_forward_acc_speed
:
int
=
0.01
size_factor
:
float
=
1
0
size_factor
:
float
=
1
6
rotation_x
:
float
=
None
rotation_x
:
float
=
None
rotation_y
:
float
=
None
rotation_y
:
float
=
None
rotation_z
:
float
=
None
rotation_z
:
float
=
None
around_max_count
:
int
=
3
00
around_max_count
:
int
=
4
00
around_max_speed
:
int
=
-
2
00
around_max_speed
:
int
=
-
1
00
around_min_speed
:
int
=
100
around_min_speed
:
int
=
100
around_direction
:
str
=
"right"
around_direction
:
str
=
"right"
around_acc_speed
:
int
=
-
2
around_acc_speed
:
int
=
-
1.5
class
WormholeSim
(
UniverseSimScenes
):
class
WormholeSim
(
UniverseSimScenes
):
SIZE_SCALE
=
1
SIZE_SCALE
=
1
D
=
AU
/
10
*
SIZE_SCALE
D
=
AU
/
10
*
SIZE_SCALE
def
__init__
(
self
):
D
=
self
.
D
self
.
camera_target
=
CoreValagaClas
(
name
=
"摄像机镜头"
,
mass
=
1e30
,
color
=
(
111
,
140
,
255
),
# init_position=[0, 0, 0],
init_position
=
[
D
,
0
,
-
D
],
init_velocity
=
[
0
,
0
,
0
],
size_scale
=
self
.
SIZE_SCALE
*
1e3
).
set_ignore_gravity
(
True
)
self
.
wormholeinfo_default_vals
=
None
self
.
camera_target
.
go_target
=
None
self
.
camera_target
.
go_target_stage
=
None
self
.
last_universe
=
None
self
.
current_universe
=
None
self
.
target_universe
=
None
self
.
universes
=
[]
self
.
fixed_stars
=
[]
self
.
wormhole_infos
=
{}
self
.
create_universes
()
self
.
create_fixed_stars
()
self
.
bodies
=
[
self
.
camera_target
]
+
self
.
universes
+
self
.
fixed_stars
def
create_universe
(
self
,
name
,
idx
,
position
):
if
name
is
None
:
name
=
f
"宇宙
{
idx
}
"
universe_body
=
create_universe_body
(
name
,
texture
=
f
'cosmic_pan_
{
idx
+
1
}
.jpg'
,
# self.textures[idx],
size_scale
=
self
.
SIZE_SCALE
,
init_position
=
position
,
init_velocity
=
[
0
,
0
,
0
],
)
universe_body
.
set_light_disable
(
True
)
return
universe_body
def
fixed_stars_D
(
self
):
r
=
random
.
random
()
D
=
self
.
D
*
(
2
+
r
)
return
D
def
create_fixed_stars
(
self
):
D
=
self
.
fixed_stars_D
positions
=
[[
D
(),
D
(),
D
()],
[
D
(),
D
(),
-
D
()],
[
D
(),
-
D
(),
D
()],
[
D
(),
-
D
(),
-
D
()],
[
-
D
(),
D
(),
D
()],
[
-
D
(),
D
(),
-
D
()],
[
-
D
(),
-
D
(),
D
()],
[
-
D
(),
-
D
(),
-
D
()]]
# positions = [[D, D, D], [D, D, -D], [D, -D, D], [D, 0, D], [D, 0, - D], [D, 0, D],
# [D, -D, -D], [-D, D, D], [-D, D, -D], [0, -D, -D], [0, D, D], [0, D, -D],
# [-D, -D, D], [-D, -D, -D], [-D, -D, 0], [-D, -D, 0]]
for
position
in
positions
:
fixed_star
=
FixedStar
(
color
=
(
200
,
200
,
200
),
size_scale
=
0.5
,
init_position
=
position
)
fixed_star
.
glows
=
(
0
,
1.1
,
1.08
)
self
.
fixed_stars
.
append
(
fixed_star
)
def
create_universes
(
self
):
def
create_universes
(
self
):
D
=
self
.
D
D
=
self
.
D
# camera_target_init_speed: int = 100
# camera_target_init_speed: int = 100
# camera_init_speed: int = 100
# camera_init_speed: int = 100
# camera_target_speed: int = 2000
# camera_target_speed: int = 1200
# camera_target_max_speed: int = 1500
# camera_forward_speed: int = - 0.1
# camera_forward_speed: int = - 0.1
# camera_max_speed: int =
20
00
# camera_max_speed: int =
15
00
# camera_acc_speed: int = 1.02
# camera_acc_speed: int = 1.02
# camera_forward_acc_speed: int = 0.01
# camera_forward_acc_speed: int = 0.01
# size_factor: float = 1
0
# size_factor: float = 1
6
# rotation_x: float = None
# rotation_x: float = None
# rotation_y: float = None
# rotation_y: float = None
# rotation_z: float = None
# rotation_z: float = None
# around_max_count: int = 300
# around_max_count: int = 400
# around_max_speed: int = -200
# around_max_speed: int = -100
# around_min_speed: int = 100
# around_direction: str = "right"
# around_direction: str = "right"
# around_acc_speed: int = -
2
# around_acc_speed: int = -
1.5
wormhole_infos
=
[
wormhole_infos
=
[
{
"name"
:
"我们宇宙"
,
"position"
:
[
D
,
0
,
-
D
],
"rotation_y"
:
-
15
0
,
"around_direction"
:
"down"
,
{
"name"
:
"我们宇宙"
,
"position"
:
[
D
,
0
,
-
D
],
"rotation_y"
:
10
0
,
"around_direction"
:
"down"
,
"camera_forward_speed"
:
0
,
"around_max_count"
:
400
},
"camera_forward_speed"
:
0
,
"around_max_count"
:
400
},
{
"name"
:
"
红色宇宙"
,
"position"
:
[
D
,
0
,
D
],
"rotation_z"
:
30
,
"around_acc_speed"
:
-
20
,
{
"name"
:
"
粉色宇宙"
,
"position"
:
[
D
,
0
,
D
],
"rotation_z"
:
0
,
"around_acc_speed"
:
-
2
,
"around_min_speed"
:
150
,
"camera_forward_speed"
:
-
0.2
,
"around_max_count"
:
6
00
},
"around_min_speed"
:
150
,
"camera_forward_speed"
:
-
0.2
,
"around_max_count"
:
7
00
},
{
"name"
:
"
黄色宇宙"
,
"position"
:
[
-
D
,
-
D
,
D
],
"around_direction"
:
"left"
},
{
"name"
:
"
蓝天宇宙"
,
"position"
:
[
-
D
,
-
D
,
D
],
"around_direction"
:
"left"
,
"around_max_count"
:
600
},
{
"name"
:
"
梦海宇宙"
,
"position"
:
[
-
D
,
0
,
-
D
]
},
{
"name"
:
"
金色宇宙"
,
"position"
:
[
-
D
,
0
,
-
D
],
"around_max_count"
:
600
},
{
"name"
:
"
金色宇宙"
,
"position"
:
[
-
D
,
D
,
D
],
"around_max_count"
:
4
00
},
{
"name"
:
"
深红宇宙"
,
"position"
:
[
-
D
,
D
,
D
],
"around_max_count"
:
8
00
},
# {"position": [D, -D, D]},
# {"position": [D, -D, D]},
# {"position": [- D, -D, -D]},
# {"position": [- D, -D, -D]},
# {"position": [- D, 0, D]},
# {"position": [- D, 0, D]},
...
@@ -170,10 +120,62 @@ class WormholeSim(UniverseSimScenes):
...
@@ -170,10 +120,62 @@ class WormholeSim(UniverseSimScenes):
self
.
universes
.
append
(
universe
)
self
.
universes
.
append
(
universe
)
self
.
wormhole_infos
[
universe
]
=
WormholeInfo
(
**
ps1
)
self
.
wormhole_infos
[
universe
]
=
WormholeInfo
(
**
ps1
)
def
__init__
(
self
):
D
=
self
.
D
self
.
camera_target
=
CoreValagaClas
(
name
=
"摄像机镜头"
,
mass
=
1e30
,
color
=
(
111
,
140
,
255
),
# init_position=[0, 0, 0],
init_position
=
[
D
,
0
,
-
D
],
init_velocity
=
[
0
,
0
,
0
],
size_scale
=
self
.
SIZE_SCALE
*
1e3
).
set_ignore_gravity
(
True
)
self
.
wormholeinfo_default_vals
=
None
self
.
camera_target
.
go_target
=
None
self
.
camera_target
.
go_target_stage
=
None
self
.
last_universe
=
None
self
.
current_universe
=
None
self
.
target_universe
=
None
self
.
universes
=
[]
self
.
fixed_stars
=
[]
self
.
wormhole_infos
=
{}
self
.
create_universes
()
self
.
create_fixed_stars
()
self
.
bodies
=
[
self
.
camera_target
]
+
self
.
universes
+
self
.
fixed_stars
def
create_universe
(
self
,
name
,
idx
,
position
):
if
name
is
None
:
name
=
f
"宇宙
{
idx
}
"
universe_body
=
create_universe_body
(
name
,
texture
=
f
'cosmic_pan_
{
idx
+
1
}
.jpg'
,
# self.textures[idx],
size_scale
=
self
.
SIZE_SCALE
,
init_position
=
position
,
init_velocity
=
[
0
,
0
,
0
],
)
universe_body
.
set_light_disable
(
True
)
return
universe_body
def
fixed_stars_D
(
self
):
r
=
random
.
random
()
D
=
self
.
D
*
(
2
+
r
)
return
D
def
create_fixed_stars
(
self
):
D
=
self
.
fixed_stars_D
positions
=
[[
D
(),
D
(),
D
()],
[
D
(),
D
(),
-
D
()],
[
D
(),
-
D
(),
D
()],
[
D
(),
-
D
(),
-
D
()],
[
-
D
(),
D
(),
D
()],
[
-
D
(),
D
(),
-
D
()],
[
-
D
(),
-
D
(),
D
()],
[
-
D
(),
-
D
(),
-
D
()]]
# positions = [[D, D, D], [D, D, -D], [D, -D, D], [D, 0, D], [D, 0, - D], [D, 0, D],
# [D, -D, -D], [-D, D, D], [-D, D, -D], [0, -D, -D], [0, D, D], [0, D, -D],
# [-D, -D, D], [-D, -D, -D], [-D, -D, 0], [-D, -D, 0]]
for
position
in
positions
:
fixed_star
=
FixedStar
(
color
=
(
200
,
200
,
200
),
size_scale
=
0.5
,
init_position
=
position
)
fixed_star
.
glows
=
(
0
,
1.1
,
1.08
)
self
.
fixed_stars
.
append
(
fixed_star
)
def
init_setting
(
self
):
def
init_setting
(
self
):
camera
.
clip_plane_near
=
0.
00005
camera
.
clip_plane_near
=
0.
6
# camera.clip_plane_near = 0.01
# camera.clip_plane_near = 0.01
camera
.
clip_plane_far
=
10000000
0
camera
.
clip_plane_far
=
10000000
# create_sphere_sky(scale=200000)
# create_sphere_sky(scale=200000)
application
.
time_scale
=
0.001
application
.
time_scale
=
0.001
# camera.scale = 1000
# camera.scale = 1000
...
@@ -291,7 +293,7 @@ class WormholeSim(UniverseSimScenes):
...
@@ -291,7 +293,7 @@ class WormholeSim(UniverseSimScenes):
camera
.
current_universe
=
self
.
current_universe
camera
.
current_universe
=
self
.
current_universe
camera_look_at
(
self
.
camera_target
,
rotation_z
=
0
)
camera_look_at
(
self
.
camera_target
,
rotation_z
=
0
)
#
self.text_panel = create_text_panel(font="fonts/DroidSansFallback.ttf", font_scale=1.3)
self
.
text_panel
=
create_text_panel
(
font
=
"fonts/DroidSansFallback.ttf"
,
font_scale
=
1.3
)
def
update_text_panel
(
self
):
def
update_text_panel
(
self
):
"""
"""
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录