57 lines
1.4 KiB
Python
57 lines
1.4 KiB
Python
from tello_drone import DroneSimulator, TelloSimulator
|
|
from ursina import *
|
|
|
|
app = Ursina()
|
|
window.color = color.rgb(135, 206, 235)
|
|
window.fullscreen = True
|
|
|
|
window.borderless = False
|
|
window.fps_counter.enabled = False
|
|
window.render_mode = 'default'
|
|
|
|
|
|
Sky(texture='sky_sunset')
|
|
|
|
tello_sim = TelloSimulator()
|
|
drone_sim = DroneSimulator(tello_sim)
|
|
|
|
def input(key):
|
|
if key == 'h':
|
|
drone_sim.help_text.visible = not drone_sim.help_text.visible
|
|
if key == 'c':
|
|
drone_sim.toggle_camera_view()
|
|
def update():
|
|
moving = False
|
|
rolling = False
|
|
|
|
if held_keys['w']:
|
|
drone_sim.move("forward")
|
|
moving = True
|
|
if held_keys['s']:
|
|
drone_sim.move("backward")
|
|
moving = True
|
|
if held_keys['a']:
|
|
drone_sim.move("left")
|
|
rolling = True
|
|
if held_keys['d']:
|
|
drone_sim.move("right")
|
|
rolling = True
|
|
if held_keys['j']:
|
|
drone_sim.rotate(-drone_sim.rotation_speed)
|
|
if held_keys['l']:
|
|
drone_sim.rotate(drone_sim.rotation_speed)
|
|
if held_keys['shift']:
|
|
drone_sim.change_altitude("up")
|
|
if held_keys['control']:
|
|
drone_sim.change_altitude("down")
|
|
if not moving:
|
|
drone_sim.pitch_angle = 0 # Reset pitch when not moving
|
|
|
|
if not rolling:
|
|
drone_sim.roll_angle = 0 # Reset roll when not rolling
|
|
|
|
drone_sim.update_movement()
|
|
drone_sim.update_pitch_roll()
|
|
|
|
app.run()
|