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

Python超人-宇宙模拟器

上级 f235ed70
...@@ -201,6 +201,8 @@ def find_texture(texture, default_val=""): ...@@ -201,6 +201,8 @@ def find_texture(texture, default_val=""):
if os.path.exists(texture): if os.path.exists(texture):
return texture return texture
paths = [ paths = [
os.path.join('..', '..', '..', 'objs', 'textures'),
os.path.join('..', '..', '..', 'textures'),
os.path.join('..', '..', 'textures'), os.path.join('..', '..', 'textures'),
os.path.join('..', '..', 'objs', 'textures'), os.path.join('..', '..', 'objs', 'textures'),
os.path.join('..', 'textures'), os.path.join('..', 'textures'),
......
...@@ -484,7 +484,10 @@ class Obj(metaclass=ABCMeta): ...@@ -484,7 +484,10 @@ class Obj(metaclass=ABCMeta):
return body_data return body_data
def show_demo(self, size_scale=10000, on_ready_fun=None, on_timer_changed_fun=None): def show_demo(self, size_scale=10000,
position=(0, 3000000, -9000000),
on_ready_fun=None,
on_timer_changed_fun=None):
from sim_scenes.func import ursina_run from sim_scenes.func import ursina_run
from sim_scenes.func import camera_look_at from sim_scenes.func import camera_look_at
from simulators.ursina.ursina_event import UrsinaEvent from simulators.ursina.ursina_event import UrsinaEvent
...@@ -495,18 +498,21 @@ class Obj(metaclass=ABCMeta): ...@@ -495,18 +498,21 @@ class Obj(metaclass=ABCMeta):
def on_ready(): def on_ready():
camera_look_at(self) camera_look_at(self)
if callable(on_ready_fun): on_ready_fun()
on_ready_fun()
def on_timer_changed(time_data): def on_timer_changed(time_data):
if callable(on_timer_changed_fun): on_timer_changed_fun(time_data)
on_timer_changed_fun(time_data)
UrsinaEvent.on_ready_subscription(on_ready) if callable(on_ready_fun):
UrsinaEvent.on_ready_subscription(on_ready)
UrsinaEvent.on_timer_changed_subscription(on_timer_changed) if callable(on_timer_changed_fun):
UrsinaEvent.on_timer_changed_subscription(on_timer_changed)
timer_enabled = True
else:
timer_enabled = False
ursina_run(bodies=[self], position=(0, 3000000, -9000000)) ursina_run(bodies=[self], position=position, timer_enabled=timer_enabled)
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -12,7 +12,11 @@ shperes = [] ...@@ -12,7 +12,11 @@ shperes = []
def create_sphere(): def create_sphere():
shpere = Entity(model="sphere", position=camera_ship.position, scale=30) shpere = Entity(
# model="sphere",
model="../../../objs/models/drops.obj",
texture=load_texture("../../../objs/textures/rock_snow.jpg"),
position=camera_ship.position, scale=500)
shperes.append(shpere) shperes.append(shpere)
...@@ -26,7 +30,7 @@ create_sphere_sky(scale=5000000) ...@@ -26,7 +30,7 @@ create_sphere_sky(scale=5000000)
camera.parent = camera_ship camera.parent = camera_ship
camera.reparent_to(camera_ship) camera.reparent_to(camera_ship)
camera.position = [0, 1000, -3000] camera.position = [0, 1000, -3000]
camera.rotation_x = 20 camera.rotation_x = 10
# application.time_scale = 1 # application.time_scale = 1
...@@ -36,8 +40,8 @@ def update(): ...@@ -36,8 +40,8 @@ def update():
camera_ship.rotation_y += 0.01 camera_ship.rotation_y += 0.01
# camera.position = Vec3(0, 1000, -1000) # camera.position = Vec3(0, 1000, -1000)
for shpere in shperes: for shpere in shperes:
shpere.position += Vec3(0, 0, 100)
shpere.rotation_y = camera_ship.rotation_y shpere.rotation_y = camera_ship.rotation_y
shpere.position += shpere.forward * 10
def input(key): def input(key):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册