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

Python超人-宇宙模拟器

上级 6aa88f03
......@@ -74,4 +74,4 @@ def create_universe_body(name, texture, size_scale=1.0, init_position=[0, 0, 0],
"texture": texture,
"size_scale": size_scale,
}
return UniverseBody(**params)
return UniverseBody(**params).set_resolution(50)
......@@ -31,105 +31,55 @@ class WormholeInfo:
position: list[float] = field(default_factory=[0, 0, 0])
camera_target_init_speed: int = 100
camera_init_speed: int = 100
camera_target_speed: int = 2000
camera_target_max_speed: int = 2000
camera_target_speed: int = 1200
camera_target_max_speed: int = 1500
camera_forward_speed: int = - 0.1
camera_max_speed: int = 4000
camera_max_speed: int = 1500
camera_acc_speed: int = 1.02
camera_forward_acc_speed: int = 0.01
size_factor: float = 10
size_factor: float = 16
rotation_x: float = None
rotation_y: float = None
rotation_z: float = None
around_max_count: int = 300
around_max_speed: int = -200
around_max_count: int = 400
around_max_speed: int = -100
around_min_speed: int = 100
around_direction: str = "right"
around_acc_speed: int = -2
around_acc_speed: int = -1.5
class WormholeSim(UniverseSimScenes):
SIZE_SCALE = 1
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):
D = self.D
# camera_target_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_max_speed: int = 2000
# camera_max_speed: int = 1500
# camera_acc_speed: int = 1.02
# camera_forward_acc_speed: int = 0.01
# size_factor: float = 10
# size_factor: float = 16
# rotation_x: float = None
# rotation_y: float = None
# rotation_z: float = None
# around_max_count: int = 300
# around_max_speed: int = -200
# around_max_count: int = 400
# around_max_speed: int = -100
# around_min_speed: int = 100
# around_direction: str = "right"
# around_acc_speed: int = -2
# around_acc_speed: int = -1.5
wormhole_infos = [
{"name": "我们宇宙", "position": [D, 0, -D], "rotation_y": -150, "around_direction": "down",
{"name": "我们宇宙", "position": [D, 0, -D], "rotation_y": 100, "around_direction": "down",
"camera_forward_speed": 0, "around_max_count": 400},
{"name": "红色宇宙", "position": [D, 0, D], "rotation_z": 30, "around_acc_speed": -20,
"around_min_speed": 150, "camera_forward_speed": -0.2, "around_max_count": 600},
{"name": "黄色宇宙", "position": [- D, -D, D], "around_direction": "left"},
{"name": "梦海宇宙", "position": [- D, 0, -D]},
{"name": "金色宇宙", "position": [-D, D, D], "around_max_count": 400},
{"name": "粉色宇宙", "position": [D, 0, D], "rotation_z": 0, "around_acc_speed": -2,
"around_min_speed": 150, "camera_forward_speed": -0.2, "around_max_count": 700},
{"name": "蓝天宇宙", "position": [- D, -D, D], "around_direction": "left", "around_max_count": 600},
{"name": "金色宇宙", "position": [- D, 0, -D], "around_max_count": 600},
{"name": "深红宇宙", "position": [-D, D, D], "around_max_count": 800},
# {"position": [D, -D, D]},
# {"position": [- D, -D, -D]},
# {"position": [- D, 0, D]},
......@@ -170,10 +120,62 @@ class WormholeSim(UniverseSimScenes):
self.universes.append(universe)
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):
camera.clip_plane_near = 0.00005
camera.clip_plane_near = 0.6
# camera.clip_plane_near = 0.01
camera.clip_plane_far = 100000000
camera.clip_plane_far = 10000000
# create_sphere_sky(scale=200000)
application.time_scale = 0.001
# camera.scale = 1000
......@@ -291,7 +293,7 @@ class WormholeSim(UniverseSimScenes):
camera.current_universe = self.current_universe
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):
"""
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册