1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- extends Node2D
-
- var sprite_scene = preload("res://mini-game/scenes/decor/ForegroundSprite.tscn")
-
- var sprites := []
- var game_version := 0
- var moving := false
-
- var speed_offset : float = 0 setget set_speed_offset
-
- func _ready():
- sprites.append($ForegroundSprite)
- stop()
-
-
- func init(speed: float, version: int):
- game_version = version
- for s in sprites:
- s.game_version = game_version
- set_speed_offset(speed)
-
-
- func set_speed_offset(new_value: float):
- speed_offset = new_value
- for t in sprites:
- t.speed_offset = speed_offset
-
-
- func stop():
- moving = false
- for t in sprites:
- t.stop()
-
-
- func start():
- moving = true
- for t in sprites:
- t.start()
-
-
- func _on_ForegroundSprite_viewport_entered(object: Sprite) -> void:
- var new_sprite = sprite_scene.instance()
- new_sprite.position = Vector2(1920, 0)
- new_sprite.speed_offset = speed_offset
- new_sprite.connect("viewport_entered", self, "_on_ForegroundSprite_viewport_entered")
- new_sprite.connect("viewport_exited", self, "_on_ForegroundSprite_viewport_exited")
- if moving:
- new_sprite.start()
- new_sprite.game_version = game_version
- add_child(new_sprite)
- sprites.append(new_sprite)
-
-
- func _on_ForegroundSprite_viewport_exited(object: Sprite) -> void:
- sprites.remove(sprites.find(object))
- object.queue_free()
|