24 lines
802 B
GDScript
24 lines
802 B
GDScript
extends RigidBody
|
|
|
|
const SPEED = 300.0
|
|
const TURN = 2.5
|
|
var heading := Vector3.FORWARD
|
|
|
|
func _physics_process(delta):
|
|
heading = heading.rotated(Vector3.UP, Input.get_axis("right", "left") * TURN * delta).normalized()
|
|
$visual.global_transform = $visual.global_transform.looking_at($visual.global_transform.origin + heading, Vector3.UP)
|
|
|
|
func _integrate_forces(state):
|
|
add_central_force(Input.get_axis("down", "up") * heading * SPEED)
|
|
var c_mag = heading.cross(linear_velocity).y
|
|
var c = Vector3.UP.cross(heading).normalized() * c_mag
|
|
add_central_force(c * 1.0)
|
|
|
|
func _unhandled_input(event):
|
|
if event.is_action_pressed("action"):
|
|
for area in $"%interact_box".get_overlapping_areas():
|
|
if area.has_meta("owner"):
|
|
area = area.get_meta("owner")
|
|
if area.on_rover_interact(self):
|
|
break
|