32 lines
724 B
GDScript
32 lines
724 B
GDScript
extends Camera2D
|
|
|
|
var horizontal_facing = 0
|
|
var camera_x_shift = 80
|
|
|
|
onready var prev_camera_pos = get_camera_position()
|
|
onready var tween = $ShiftTween
|
|
|
|
|
|
func _process(delta: float) -> void:
|
|
_check_facing()
|
|
prev_camera_pos = get_camera_position()
|
|
|
|
|
|
# TODO Smoothing the camera limits in godot ruins this
|
|
func _check_facing():
|
|
var new_h_facing = sign(get_camera_position().x - prev_camera_pos.x)
|
|
if new_h_facing != 0 && horizontal_facing != new_h_facing:
|
|
horizontal_facing = new_h_facing
|
|
var target_offset = camera_x_shift * new_h_facing
|
|
|
|
tween.interpolate_property(
|
|
self,
|
|
"transform:origin:x",
|
|
self.transform.origin.x,
|
|
target_offset,
|
|
1.2,
|
|
Tween.TRANS_SINE,
|
|
Tween.EASE_OUT
|
|
)
|
|
tween.start()
|