pir-serious-game-ethics/mini-game/scenes/decor/foreground.gd

38 lines
861 B
GDScript

extends Node2D
var sprite_scene = preload("res://mini-game/scenes/decor/ForegroundSprite.tscn")
var textures := []
var moving := false
func _ready():
textures.append($ForegroundSprite)
stop()
func stop():
moving = false
for t in textures:
t.stop()
func start():
moving = true
for t in textures:
t.start()
func _on_ForegroundSprite_viewport_entered(object: Sprite) -> void:
var new_sprite = sprite_scene.instance()
new_sprite.position = Vector2(1920, 0)
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()
add_child(new_sprite)
textures.append(new_sprite)
func _on_ForegroundSprite_viewport_exited(object: Sprite) -> void:
textures.remove(textures.find(object))
object.queue_free()