DonutBlock.gd 783 B

12345678910111213141516171819202122232425262728293031323334353637
  1. extends StaticBody2D
  2. var falling := false
  3. var can_fall := false
  4. const FALL_SPEED := 96
  5. @onready var starting_position := global_position
  6. func _physics_process(delta: float) -> void:
  7. if falling:
  8. global_position.y += FALL_SPEED * delta
  9. if $PlayerDetection.is_player_in_area():
  10. $Sprite.play("Fall")
  11. elif not falling:
  12. $Sprite.play("Idle")
  13. func start_falling() -> void:
  14. falling = true
  15. $Collision.set_deferred("one_way_collision", true)
  16. $FallTimer.start()
  17. func respawn() -> void:
  18. $Collision.set_deferred("one_way_collision", false)
  19. can_fall = true
  20. falling = false
  21. global_position = starting_position
  22. $AnimationPlayer.play("Grow")
  23. func on_player_entered() -> void:
  24. $AnimationPlayer.play("Shake")
  25. func on_player_exited() -> void:
  26. $AnimationPlayer.play("RESET")