Menu
CoddyTech

Уклонение: очки

Часть раздела Правила игры путешествия по Godot на Coddy. Урок 26 из 29.

В Dodge вы получаете одно очко за каждую секунду, которую выживаете. В сцене есть второй таймер — ScoreTimer, который срабатывает каждую секунду. На верхней панели есть надпись Score.

Это работает так же, как часы, которые вы создали ранее. Используйте переменную, покажите её в _ready() и добавляйте одно очко при каждом срабатывании timeout:

func _on_score_timer_timeout():
	score += 1
	$HUD/Score.text = "Score: %d" % score

В одной сцене может быть много таймеров. У каждого свои wait_time и функция. Поэтому вы можете менять частоту падения блоков, не меняя счёт.

challenge icon

Задание

Средне

Получай по одному очку за каждую секунду, которую ты продержишься.

  1. Добавь var score = 0 в начало и покажи Score: 0 в $HUD/Score в _ready().
  2. Подключи $ScoreTimer.timeout к _on_score_timer_timeout.
  3. В _on_score_timer_timeout() добавь одно очко и покажи новый счёт.

Нажми «Играть»: счёт будет увеличиваться раз в секунду. Затем нажми «Проверить».

Попробуйте сами

extends Node2D

var block_scene = preload("res://block.tscn")

func _ready():
	$SpawnTimer.timeout.connect(_on_spawn_timer_timeout)

func _on_spawn_timer_timeout():
	var block = block_scene.instantiate()
	block.position = Vector2(randf_range(40, 600), -30)
	add_child(block)

Все уроки раздела Правила игры

Потренируйтесь самостоятельно: Песочница Godot