Успеть на время
Часть раздела Правила игры путешествия по 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Задание
ЛегкоПреврати обратный отсчёт в гонку, которую можно проиграть.
- В
_on_clock_timeout()после строки с надписью, когдаtime_leftравно 0, присвой$HUD/Message.textзначение"Time's up!"и приостанови игру. - В
_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
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Правила игры
Потренируйтесь самостоятельно: Песочница Godot