Advertisement
Guest User

Camera Script

a guest
Feb 16th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.67 KB | None | 0 0
  1. extends Spatial
  2.  
  3. export var ZoomSpeed = 0.5
  4. export var RotateSpeed = 0.15
  5.  
  6. var Distance
  7. var oldDistance
  8. var newDistance
  9.  
  10. var zoom_level = 1
  11. var moveCam = false
  12.  
  13. onready var ZoomTween = get_node("ZoomLevel")
  14.  
  15. # Called when the node enters the scene tree for the first time.
  16. func _ready():
  17.     # set as the top level
  18.     set_as_toplevel(true)
  19.     # hide the helper mesh
  20.     $XRotate/HelperMesh.hide()
  21.    
  22.  
  23. func _process(delta):
  24.    
  25.     # get input from controller
  26.     var xRotateAmount = Input.get_action_strength("cam_down") - Input.get_action_strength("cam_up")
  27.     var yRotateAmount = Input.get_action_strength("cam_right") - Input.get_action_strength("cam_left")
  28.    
  29.     # store the toggle_distance action
  30.     var toggle_distance = Input.is_action_just_pressed("toggle_distance")
  31.    
  32.     # rotate yRotate node depending on yRotateAmount
  33.     rotate_y(-yRotateAmount * RotateSpeed)
  34.    
  35.     # rotate xRotate node
  36.     $XRotate.rotate_x(-xRotateAmount * RotateSpeed)
  37.    
  38.     # increase zoom level if we have toggled the distance
  39.     if toggle_distance:
  40.         zoom_level += 1
  41.         _update_distance()
  42.        
  43.     # check the status of zoom level and set Distance accordingly
  44.     if zoom_level == 1:
  45.         oldDistance = 20
  46.         Distance = 10
  47.     elif zoom_level == 2:
  48.         Distance = 15
  49.         oldDistance = 10
  50.     elif zoom_level == 3:
  51.         Distance = 20
  52.         oldDistance = 15
  53.        
  54.     # reset zoom level if we exceed it
  55.     if zoom_level > 3:
  56.         zoom_level = 1
  57.         Distance = 10
  58.    
  59. func _update_distance():
  60.     # set the distance of the camera
  61.     ZoomTween.interpolate_property($XRotate/Camera, "XRotate/Camera.transform.origin.z", oldDistance, Distance, ZoomSpeed, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT, 0)
  62.     ZoomTween.start()
  63.     print ("ZoomTween Started")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement