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