diff --git a/common/image_utils.py b/common/image_utils.py index 3009f270470ccc3f8a826fdde2add8f1d2a2b5a1..d279de673b19547515b868fc94207d00c2dec817 100644 --- a/common/image_utils.py +++ b/common/image_utils.py @@ -201,6 +201,8 @@ def find_texture(texture, default_val=""): if os.path.exists(texture): return texture paths = [ + os.path.join('..', '..', '..', 'objs', 'textures'), + os.path.join('..', '..', '..', 'textures'), os.path.join('..', '..', 'textures'), os.path.join('..', '..', 'objs', 'textures'), os.path.join('..', 'textures'), diff --git a/objs/obj.py b/objs/obj.py index 54887336948dfd9ab0a4534c8858d0dff6f4874d..d9929d2955f8f818e4ee3e51b4e78a8a635c6fe2 100644 --- a/objs/obj.py +++ b/objs/obj.py @@ -484,7 +484,10 @@ class Obj(metaclass=ABCMeta): 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 camera_look_at from simulators.ursina.ursina_event import UrsinaEvent @@ -495,18 +498,21 @@ class Obj(metaclass=ABCMeta): def on_ready(): camera_look_at(self) - if callable(on_ready_fun): - on_ready_fun() + on_ready_fun() 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__': diff --git a/simulators/ursina/entities/ursina_demo.py b/simulators/ursina/entities/ursina_demo.py index 5e17014d80285cad9b924262afeefed05db25cc2..3b19e80f4abd70841c97cc9e074f58fa6b63b9de 100644 --- a/simulators/ursina/entities/ursina_demo.py +++ b/simulators/ursina/entities/ursina_demo.py @@ -12,7 +12,11 @@ shperes = [] 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) @@ -26,7 +30,7 @@ create_sphere_sky(scale=5000000) camera.parent = camera_ship camera.reparent_to(camera_ship) camera.position = [0, 1000, -3000] -camera.rotation_x = 20 +camera.rotation_x = 10 # application.time_scale = 1 @@ -36,8 +40,8 @@ def update(): camera_ship.rotation_y += 0.01 # camera.position = Vec3(0, 1000, -1000) for shpere in shperes: - shpere.position += Vec3(0, 0, 100) shpere.rotation_y = camera_ship.rotation_y + shpere.position += shpere.forward * 10 def input(key):