Camera.gd 814 B

12345678910111213141516171819202122232425262728
  1. extends Camera
  2. onready var Player = get_parent()
  3. const CAMERA_TURN_SPEED = 200
  4. func _ready():
  5. set_process_input(true)
  6. Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
  7. func look_updown_rotation(rotation = 0):
  8. var toReturn = self.get_rotation() + Vector3(rotation, 0, 0)
  9. toReturn.x = clamp(toReturn.x, PI / -2, PI / 2)
  10. return toReturn
  11. func look_leftright_rotation(rotation = 0):
  12. return Player.get_rotation() + Vector3(0, rotation, 0)
  13. func _input(event):
  14. if not event is InputEventMouseMotion:
  15. return
  16. Player.set_rotation(look_leftright_rotation(event.relative.x / -CAMERA_TURN_SPEED))
  17. self.set_rotation(look_updown_rotation(event.relative.y / -CAMERA_TURN_SPEED))
  18. func _enter_tree():
  19. Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
  20. func _leave_tree():
  21. Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)