Menu
CoddyTech

時間内にクリアしよう

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
challenge icon

チャレンジ

簡単
  1. _on_clock_timeout()内で、ラベルの行の後に、time_leftが0かどうかを確認します。0の場合は、$HUD/MessageにTime's up!を表示して、ゲームを一時停止します。
  2. _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
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ゲームのルールのすべてのレッスン

自分で練習してみよう: Godotプレイグラウンド