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

Python超人-宇宙模拟器

上级 2542b126
...@@ -3,5 +3,6 @@ from objs.diamond import Diamond ...@@ -3,5 +3,6 @@ from objs.diamond import Diamond
from objs.football import Football from objs.football import Football
from objs.satellite import Satellite, Satellite2 from objs.satellite import Satellite, Satellite2
from objs.space_ship import SpaceShip from objs.space_ship import SpaceShip
from objs.star_wars_speeder import StarWarsSpeeder
from objs.rock_snow import RockSnow from objs.rock_snow import RockSnow
from objs.rock import Rock, create_rock from objs.rock import Rock, create_rock
...@@ -45,3 +45,4 @@ class Football(Obj): ...@@ -45,3 +45,4 @@ class Football(Obj):
if __name__ == '__main__': if __name__ == '__main__':
football = Football() football = Football()
print(football) print(football)
football.show_demo()
此差异已折叠。
...@@ -477,6 +477,21 @@ class Obj(metaclass=ABCMeta): ...@@ -477,6 +477,21 @@ class Obj(metaclass=ABCMeta):
return body_data return body_data
def show_demo(self, size_scale=10000):
from sim_scenes.func import ursina_run
from sim_scenes.func import camera_look_at
from simulators.ursina.ursina_event import UrsinaEvent
self.size_scale = size_scale
self.init_position = np.array([0, -3000000, 9000000])
def on_ready():
camera_look_at(self)
# 运行前会触发 on_ready
UrsinaEvent.on_ready_subscription(on_ready)
ursina_run(bodies=[self], position=(0, 0, 0))
if __name__ == '__main__': if __name__ == '__main__':
# build_bodies_from_json('../data/sun.json') # build_bodies_from_json('../data/sun.json')
......
...@@ -46,3 +46,4 @@ class SpaceShip(Obj): ...@@ -46,3 +46,4 @@ class SpaceShip(Obj):
if __name__ == '__main__': if __name__ == '__main__':
spaceship = SpaceShip() spaceship = SpaceShip()
print(spaceship) print(spaceship)
spaceship.show_demo(size_scale=1000000)
# -*- coding:utf-8 -*-
# title :太空飞船
# description :太空飞船
# author :Python超人
# date :2023-02-11
# link :https://gitcode.net/pythoncr/
# python_version :3.8
# ==============================================================================
from objs.obj import Obj
class StarWarsSpeeder(Obj):
"""
太空战机
来源:https://www.3dcool.net/model/12/65699.html
"""
def __init__(self, name="太空战机", mass=5.97237e24,
init_position=[0, 0, 0],
init_velocity=[0, 0, 0],
texture="star_wars_speeder.jpg", size_scale=1.0, distance_scale=1.0,
ignore_mass=False, density=1e3, color=(7, 0, 162),
trail_color=None, show_name=False,
model="star_wars_speeder.obj", rotation=(0, 0, 0),
parent=None, gravity_only_for=[]):
params = {
"name": name,
"mass": mass,
"init_position": init_position,
"init_velocity": init_velocity,
"density": density,
"color": color,
"texture": texture,
"size_scale": size_scale,
"distance_scale": distance_scale,
"ignore_mass": ignore_mass,
"trail_color": trail_color,
"show_name": show_name,
"parent": parent,
"rotation": rotation,
"gravity_only_for": gravity_only_for,
"model": model
}
super().__init__(**params)
if __name__ == '__main__':
star_wars_speeder = StarWarsSpeeder(size_scale=10000)
print(star_wars_speeder)
star_wars_speeder.show_demo()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册