Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import stuff
- from ursina import *
- from ursina.prefabs.first_person_controller import FirstPersonController
- from random import *
- app = Ursina()
- #create a player
- player = FirstPersonController(model = 'cube', collider = 'box', jump_height = 2, gravity = 1, speed = 5, health = 100)
- #create a floor
- floor = Entity(collider = 'box',
- model = 'plane',
- scale = (100,1,100),
- texture = 'white_cube',
- texture_scale = (100,100),
- color = color.white.tint(-0.1))
- #build a target
- target = Entity(model = 'cube',
- collider = 'box',
- scale = (2,2,2),
- color = color.green,
- position = (30,1,30))
- enemies = []
- enemy1 = Entity(model = 'cube',
- collider = 'box',
- scale = (2,2,2),
- color = color.red,
- position = (49,1,49),
- dx = 0,dz = 0,
- texture = 'brick')
- enemies.append(enemy1)
- enemy2 = Entity(model = 'cube',
- collider = 'box',
- scale = (2,2,2),
- color = color.red,
- position = (-49,1,49),
- dx = 0,dz = 0,
- texture = 'brick')
- enemies.append(enemy2)
- enemy3 = Entity(model = 'cube',
- collider = 'box',
- scale = (2,2,2),
- color = color.red,
- position = (-49,1,-49),
- dx = 0,dz = 0,
- texture = 'brick')
- enemies.append(enemy3)
- enemy4 = Entity(model = 'cube',
- collider = 'box',
- scale = (2,2,2),
- color = color.red,
- position = (49,1,-49),
- dx = 0,dz = 0,
- texture = 'brick')
- enemies.append(enemy4)
- obstacles = []
- counter = 0
- def update():
- global counter
- counter += 1
- if counter % 60 == 0:
- obstacle = Entity(model = 'cube',
- collider = 'box',
- scale = (2,2,2),
- color = color.yellow,
- position = (randint(-50,50) ,100, randint(-50,50)),
- dy = -0.2,
- texture = 'brick')
- obstacles.append(obstacle)
- for obstacle in obstacles:
- if obstacle.intersects().hit == False:
- obstacle.y += obstacle.dy
- for enemy in enemies:
- enemy_collision = enemy.intersects()
- if enemy_collision.hit and enemy_collision.entity == target:
- enemy.x -= 2*enemy.dx
- enemy.z -= 2*enemy.dz
- elif enemy_collision.hit and enemy_collision.entity == player:
- player.health -= 5
- print(player.health)
- elif enemy_collision.hit and enemy_collision.entity in obstacles:
- enemy.x -= 2*enemy.dx
- enemy.z -= 2*enemy.dz
- else:
- enemy.x += enemy.dx
- enemy.z += enemy.dz
- if player.x > enemy.x:
- enemy.dx = 0.01
- else:
- enemy.dx = -0.01
- #change the enemy dy
- if player.z > enemy.z:
- enemy.dz = 0.01
- else:
- enemy.dz = -0.01
- hit_info = player.intersects()
- if hit_info.hit:
- if hit_info.entity == target:
- player.jump_height = 20
- player.gravity = 0.1
- else:
- player.jump_height = 2
- player.gravity = 1
- if held_keys['c']:
- application.pause()
- mouse.locked = False
- if player.health <0:
- message = Text(text = 'YOU LOSE', origin = (0,0), background = True, color=color.red)
- application.pause()
- mouse.locked = False
- app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement