diff --git a/simulators/ursina/entities/ursina_demo.py b/simulators/ursina/entities/ursina_demo.py index dee54bc680658b692acb972068c9b7bc4d69d33e..ccc8cfbf49e4ac2e795e6ea347c9bceb22098989 100644 --- a/simulators/ursina/entities/ursina_demo.py +++ b/simulators/ursina/entities/ursina_demo.py @@ -8,22 +8,42 @@ texture = load_texture("../../../objs/textures/core_valaga_clas.jpg") camera_ship = Entity(model="../../../objs/models/core_valaga_clas.obj", texture=texture, double_sided=True) -shperes = [] +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) -def create_sphere(): - shpere_l = Entity( +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"), - position=camera_ship.position+Vec3(-260,0,0), scale=500) - shperes.append(shpere_l) - shpere_r = Entity( + 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"), - position=camera_ship.position+Vec3(260,0,0), scale=500) - shperes.append(shpere_r) + collider='box', + position=camera_ship.position + Vec3(260, 0, 0), scale=500) + bullets.append(bullet_r) # camera.parent = camera_ship.planet @@ -42,18 +62,44 @@ camera.rotation_x = 10 # application.time_scale = 1 def update(): - camera_ship.position += Vec3(0, 0, 10) - camera_ship.rotation_y += 0.01 + camera_ship.position += camera_ship.forward * 2 + # camera_ship.rotation_y += 0.01 # camera.position = Vec3(0, 1000, -1000) - for shpere in shperes: - shpere.rotation_y = camera_ship.rotation_y - shpere.position += shpere.forward * 10 + 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_sphere() + create_bullets() # player = FirstPersonController()