時間内にクリアしよう
CoddyのGodotジャーニー「ゲームのルール」セクションの一部。レッスン 24/29。
カウントダウンは0になっても何も起こらず、-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かどうかを確認します。0の場合は、$HUD/MessageにTime's up!を表示して、ゲームを一時停止します。_on_goal_body_entered(body)内で、You win!の後にゲームを一時停止します。
自分で試してみよう
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プレイグラウンド