WarpZoneCameraLimit.gd 774 B

123456789101112131415161718192021
  1. extends Node2D
  2. @export var y_limit := -176
  3. @onready var camera := get_viewport().get_camera_2d()
  4. @onready var old_limit = Player.camera_right_limit
  5. func enter_screen() -> void:
  6. if get_viewport().get_camera_2d().get_target_position().x > global_position.x: return
  7. Player.camera_right_limit = int(global_position.x)
  8. func _physics_process(_delta: float) -> void:
  9. if camera != null:
  10. var player = get_tree().get_first_node_in_group("Players")
  11. if (player.global_position.y <= y_limit + 1 and player.global_position.x + player.get_node("CameraHandler").camera_offset.x >= player.camera.get_screen_center_position().x) or player.global_position.x >= global_position.x - 16:
  12. return_to_normal()
  13. func return_to_normal() -> void:
  14. Player.camera_right_limit = old_limit