Menu
CoddyTech

Успеть на время

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

Обратный отсчёт ничего не делает при достижении нуля и продолжается до -1, -2. Добавь правила:

  • Когда время достигнет 0, игрок проигрывает. Покажи Time's up! и останови игру.
  • Если игрок первым доберётся до флага, он выиграет. Покажи You win! и останови игру.

Останови игру с помощью get_tree().paused = true. Пауза останавливает часы, поэтому время остаётся на том значении, на котором игра закончилась. Она также останавливает игрока, поэтому никто не выиграет после того, как время истечёт.

if time_left == 0:
	$HUD/Message.text = "Time's up!"
	get_tree().paused = true
challenge icon

Задание

Легко

Преврати обратный отсчёт в гонку, которую можно проиграть.

  1. В _on_clock_timeout() после строки с надписью, когда time_left равно 0, присвой $HUD/Message.text значение "Time's up!" и приостанови игру.
  2. В _on_goal_body_entered(body) приостанови игру после "You win!".

Нажми «Играть» и подожди: при Time: 0 игра остановится с сообщением Time's up! Затем нажми «Проверить».

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

extends Node2D

var time_left = 10

func _ready():
	$HUD/Time.text = "Time: %d" % time_left
	$Goal.body_entered.connect(_on_goal_body_entered)
	$Clock.timeout.connect(_on_clock_timeout)

func _on_goal_body_entered(body):
	if body.is_in_group("player"):
		$HUD/Message.text = "You win!"

func _on_clock_timeout():
	time_left -= 1
	$HUD/Time.text = "Time: %d" % time_left
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

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

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