50 lines
1.3 KiB
GDScript
50 lines
1.3 KiB
GDScript
extends Camera2D
|
|
|
|
|
|
@export_range(0.0, 100) var pan_speed: float = 1.0
|
|
|
|
var should_move_right = false
|
|
var should_move_left = false
|
|
|
|
@onready var arrow_001: Sprite2D = $"../Arrow001"
|
|
@onready var arrow_002: Sprite2D = $"../Arrow002"
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
pass # Replace with function body.
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
arrow_001.visible = position.x <= 440.0
|
|
arrow_002.visible = position.x >= 2076.0
|
|
|
|
var limit_left_at_center = limit_left + get_viewport_rect().size.x/2
|
|
var limit_right_at_center = limit_right - get_viewport_rect().size.x/2
|
|
if position.x < limit_left_at_center:
|
|
position.x = limit_left_at_center
|
|
if position.x > limit_right_at_center:
|
|
position.x = limit_right_at_center
|
|
|
|
if should_move_right and position.x < limit_right_at_center:
|
|
position.x += pan_speed
|
|
if should_move_left and position.x > limit_left_at_center:
|
|
position.x -= pan_speed
|
|
|
|
|
|
func _on_pan_right_mouse_entered() -> void:
|
|
should_move_right = true
|
|
|
|
|
|
func _on_pan_right_mouse_exited() -> void:
|
|
should_move_right = false
|
|
|
|
|
|
func _on_pan_left_mouse_entered() -> void:
|
|
should_move_left = true
|
|
|
|
|
|
func _on_pan_left_mouse_exited() -> void:
|
|
should_move_left = false
|