from ursina import * from ursina.prefabs.first_person_controller import FirstPersonController from sim_scenes.func import create_sphere_sky app = Ursina() texture = load_texture("../../../objs/textures/core_valaga_clas.jpg") camera_ship = Entity(model="../../../objs/models/core_valaga_clas.obj", texture=texture, double_sided=True) bullets = [] targets = [] target1 = Entity( # model="sphere", model="../../../objs/models/drops.obj", texture=load_texture("../../../objs/textures/rock_snow.jpg"), collider='box', position=Vec3(0, 0, 26000), scale=900) targets.append(target1) target2 = Entity( # model="sphere", model="../../../objs/models/drops.obj", texture=load_texture("../../../objs/textures/rock_snow.jpg"), collider='box', position=Vec3(-8000, 0, 26000), scale=900) targets.append(target2) def create_bullets(): bullet_l = Entity( # model="sphere", model="../../../objs/models/drops.obj", texture=load_texture("../../../objs/textures/rock_snow.jpg"), collider='box', position=camera_ship.position + Vec3(-260, 0, 0), scale=500) bullets.append(bullet_l) bullet_r = Entity( # model="sphere", model="../../../objs/models/drops.obj", texture=load_texture("../../../objs/textures/football.jpg"), collider='box', position=camera_ship.position + Vec3(260, 0, 0), scale=500) bullets.append(bullet_r) # camera.parent = camera_ship.planet # camera.reparent_to(camera_ship.planet) # camera.scale = 100 camera.fov = 60 # camera.clip_plane_near = 0.1 camera.clip_plane_far = 51000000 create_sphere_sky(scale=5000000) camera.parent = camera_ship camera.reparent_to(camera_ship) camera.position = [0, 1000, -3000] camera.rotation_x = 10 # application.time_scale = 1 def update(): camera_ship.position += camera_ship.forward * 2 # camera_ship.rotation_y += 0.01 # camera.position = Vec3(0, 1000, -1000) destroy_bullets = [] destroy_targets = [] for bullet in bullets: bullet.rotation_x = camera_ship.rotation_x bullet.rotation_y = camera_ship.rotation_y bullet.rotation_z = camera_ship.rotation_z bullet.position += bullet.forward * 3 for target in targets: if bullet.intersects(target): if target not in destroy_targets and bullet not in destroy_bullets: destroy_bullets.append(bullet) destroy_targets.append(target) for i in range(len(destroy_targets) - 1, -1, -1): targets.remove(destroy_targets[i]) destroy(destroy_targets[i]) for i in range(len(destroy_bullets) - 1, -1, -1): bullets.remove(destroy_bullets[i]) destroy(destroy_bullets[i]) if held_keys['a']: camera_ship.rotation_y -= 0.03 if held_keys['d']: camera_ship.rotation_y += 0.03 if held_keys['w']: camera_ship.rotation_x -= 0.03 if held_keys['s']: camera_ship.rotation_x += 0.03 def input(key): print(key) if key == "space": create_bullets() # player = FirstPersonController() # EditorCamera() app.run()