Blobby/src/Actors/Player/Camera2D.gd

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()