Advertisement
Guest User

Untitled

a guest
Dec 16th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. extends Camera
  2.  
  3.  
  4. export var mouse_sensitivity = 1200
  5. onready var Character = get_parent()
  6.  
  7. var screen_size = OS.get_screen_size()
  8. var window_size = OS.get_window_size()
  9. var can_rotate = false
  10.  
  11.  
  12. func _ready():
  13. OS.set_window_position(screen_size*0.5 - window_size*0.5)
  14.  
  15.  
  16. func _enter_tree():
  17. Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
  18.  
  19. func _exit_tree():
  20. Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
  21.  
  22. func _input(event):
  23. var toggle = false
  24. if Input.is_action_pressed("ui_cancel"):
  25. toggle = true
  26. if toggle:
  27. Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
  28. if not toggle:
  29. Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
  30.  
  31.  
  32. if event is InputEventMouseMotion:
  33. if can_rotate:
  34. Character.set_rotation(rearcamera_left_right(0))
  35. Character.get_node("LeftRight").set_rotation(frontcamera_left_right(-event.relative.x / mouse_sensitivity))
  36. Character.get_node("LeftRight/UpDown").set_rotation(frontcamera_up_down(-event.relative.y / mouse_sensitivity))
  37.  
  38. else:
  39. Character.set_rotation(rearcamera_left_right(-event.relative.x / mouse_sensitivity))
  40. set_rotation(rearcamera_up_down(-event.relative.y / mouse_sensitivity))
  41.  
  42.  
  43.  
  44. if event is InputEventMouseButton:
  45. if event.button_index == BUTTON_WHEEL_UP and event.is_pressed():
  46. $ZoomCam.play("ZoomIn",CONNECT_DEFERRED)
  47.  
  48.  
  49. if event.button_index == BUTTON_WHEEL_DOWN and event.is_pressed():
  50. $ZoomCam.play("ZoomOut",CONNECT_DEFERRED)
  51.  
  52.  
  53. if event.button_index == BUTTON_MIDDLE and event.is_pressed():
  54. var pos = get_translation()
  55. can_rotate = true
  56. Character.get_node("LeftRight/UpDown/FrontCamera").set_current(true)
  57. Character.get_node("LeftRight/UpDown/FrontCamera").set("translation", Vector3(0, pos.y, -pos.z))
  58. Character.get_node("LeftRight").set_rotation(Vector3(0,0,0))
  59. elif not event.is_pressed():
  60. can_rotate = false
  61. Character.get_node("LeftRight/UpDown/FrontCamera").set_current(false)
  62. Character.get_node("LeftRight").set_rotation(Vector3(0,0,0))
  63.  
  64.  
  65. func rearcamera_left_right(rcam_rot):
  66. return Character.get_rotation() + Vector3(0, rcam_rot, 0)
  67.  
  68.  
  69. func rearcamera_up_down(rcam_rot):
  70. var rcam_rotation = get_rotation() + Vector3(rcam_rot, 0, 0)
  71.  
  72. rcam_rotation.x = clamp(rcam_rotation.x, PI/-2, PI/2)
  73.  
  74. return rcam_rotation
  75.  
  76. func frontcamera_left_right(fcam_rot):
  77. return Character.get_node("LeftRight").get_rotation() + Vector3(0, fcam_rot, 0)
  78.  
  79. func frontcamera_up_down(fcam_rot):
  80. var fcam_rotation = Character.get_node("LeftRight/UpDown").get_rotation() + Vector3(fcam_rot, 0, 0)
  81.  
  82. fcam_rotation.x = clamp(fcam_rotation.x, PI/-10, PI/10)
  83.  
  84. return fcam_rotation
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement