Advertisement
Dacciox

Camera3D shake code

Apr 11th, 2020
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. extends Camera2D
  2.  
  3. var time = 0
  4. var period = 0.3
  5. var magnitude = 0.2
  6.  
  7. func _ready():
  8. set_process(true)
  9.  
  10. # Shake with decreasing intensity while there's time remaining.
  11. func _process(delta):
  12. pass
  13.  
  14. func shake(duration, frequency, amplitude):
  15. var campos = get_camera_screen_center()
  16. while time < period:
  17. time += get_process_delta_time()
  18. time = min (time, period)
  19.  
  20. #shake
  21. var offset = Vector2()
  22. offset.x = rand_range(-magnitude, magnitude)
  23. offset.y = rand_range(-period, magnitude)
  24.  
  25. var newcampos = campos
  26. newcampos += offset
  27. set_camera_screen_center(newcampos)
  28.  
  29. yield(get_tree(), "idle_frame")
  30. pass
  31. set_camera_screen_center(campos)
  32. pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement