Camera2D.gd 940 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. # This code is borrowed from work by Joshua Moelans
  2. # https://github.com/JoshuaMoelans/Master-Thesis-Godot-exploration (accessed March 2025)
  3. # Originally developed for his master's thesis at the University of Antwerp
  4. extends Camera2D
  5. var player_ref
  6. var zoomSpeed = 5
  7. var zoomStep = 0.01
  8. var zoomMin = 0.03
  9. var zoomMax = 1.5
  10. @export var new_zoom = 1.5
  11. func _ready():
  12. player_ref = get_parent()
  13. # Called every frame. 'delta' is the elapsed time since the previous frame.
  14. func _process(delta):
  15. zoom.x = lerp(zoom.x, new_zoom, zoomSpeed * delta)
  16. zoom.y = lerp(zoom.y, new_zoom, zoomSpeed * delta)
  17. zoom.x = clamp(zoom.x, zoomMin, zoomMax)
  18. zoom.y = clamp(zoom.y, zoomMin, zoomMax)
  19. player_ref.SPEED = 750*(zoomMax*1.5-zoom.x)
  20. func _input(event):
  21. if Input.is_action_pressed("zoom_in"):
  22. new_zoom += zoomStep
  23. elif Input.is_action_pressed("zoom_out"):
  24. new_zoom -= zoomStep
  25. new_zoom = float(clamp(new_zoom, zoomMin, zoomMax))