No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

foreground.gd 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. extends Node2D
  2. var sprite_scene = preload("res://mini-game/scenes/decor/ForegroundSprite.tscn")
  3. var sprites := []
  4. var game_version := 0
  5. var moving := false
  6. var speed_offset : float = 0 setget set_speed_offset
  7. func _ready():
  8. sprites.append($ForegroundSprite)
  9. stop()
  10. func init(speed: float, version: int):
  11. game_version = version
  12. for s in sprites:
  13. s.game_version = game_version
  14. set_speed_offset(speed)
  15. func set_speed_offset(new_value: float):
  16. speed_offset = new_value
  17. for t in sprites:
  18. t.speed_offset = speed_offset
  19. func stop():
  20. moving = false
  21. for t in sprites:
  22. t.stop()
  23. func start():
  24. moving = true
  25. for t in sprites:
  26. t.start()
  27. func _on_ForegroundSprite_viewport_entered(object: Sprite) -> void:
  28. var new_sprite = sprite_scene.instance()
  29. new_sprite.position = Vector2(1920, 0)
  30. new_sprite.speed_offset = speed_offset
  31. new_sprite.connect("viewport_entered", self, "_on_ForegroundSprite_viewport_entered")
  32. new_sprite.connect("viewport_exited", self, "_on_ForegroundSprite_viewport_exited")
  33. if moving:
  34. new_sprite.start()
  35. new_sprite.game_version = game_version
  36. add_child(new_sprite)
  37. sprites.append(new_sprite)
  38. func _on_ForegroundSprite_viewport_exited(object: Sprite) -> void:
  39. sprites.remove(sprites.find(object))
  40. object.queue_free()