1234567891011121314151617181920212223 |
- #@tool
- class_name FakeParallax
- extends Node2D
- @export var rate = 0.0
- @onready var base_position = get_position()
- @onready var camera = get_tree().get_root().find_child("Camera", true, false)
- var notifier: VisibleOnScreenNotifier2D = VisibleOnScreenNotifier2D.new()
- func _ready():
- if camera and !Engine.is_editor_hint():
- pass
- notifier.set_rect(Rect2(Vector2(-1920.0, -1080.0), Vector2(3840.0, 2160.0)))
- add_child(notifier)
- camera.connect("camera_moved", _update)
- _update(true)
- func _update(force: bool = false):
- if force or notifier.is_on_screen():
- if camera:
- pass
- var delta = camera.get_screen_center_position() - base_position
- set_position(base_position + delta * rate)
|