Menu
CoddyTech

キー入力で再スタート

CoddyのGodotジャーニー「ゲームのルール」セクションの一部。レッスン 15/29。

この行はシーンを破棄し、ファイルから新しく読み込みます。

get_tree().reload_current_scene()

新しいゲームは、残機3つで、プレイヤーが緑のマスにいて、Game Overが非表示の状態で始まります。

Mainも一時停止されているため、その_processはキー入力を認識しません。Main自身のprocess_modeをNode.PROCESS_MODE_ALWAYSに設定します。プレイヤーを除く子ノードはその設定を継承します。シーンではプレイヤーを一時停止可能に設定しているため、プレイヤーは引き続き停止します。

再読み込みしても、ゲームの一時停止は解除されません。再読み込みする前にget_tree().paused = falseを設定してください。そうしないと、新しいゲームは一時停止状態で始まります。

challenge icon

チャレンジ

簡単

ゲームオーバー後、プレイヤーがEキーを押してもう一度プレイできるようにします。

  1. _ready()で、このノード自身のprocess_modeをNode.PROCESS_MODE_ALWAYSに設定します($は付けません)。
  2. _process()で、livesが0で、actionが押された直後の場合、ゲームの一時停止を解除してからシーンを再読み込みします。

「プレイ」を押してライフを3つ失い、Eを押します。Lives: 3で新しいゲームが始まります。その後、「確認」を押します。

自分で試してみよう

extends Node2D

var lives = 3

func _ready():
	$HUD/Lives.text = "Lives: %d" % lives
	$Player.hurt.connect(_on_player_hurt)
	$Blink.timeout.connect(_on_blink_timeout)
	$Blink.process_mode = Node.PROCESS_MODE_ALWAYS

func _process(delta):
	pass

func _on_player_hurt():
	lives -= 1
	$HUD/Lives.text = "Lives: %d" % lives
	if lives == 0:
		$HUD/GameOver.visible = true
		$HUD/Hint.visible = true
		get_tree().paused = true

func _on_blink_timeout():
	if lives == 0:
		$HUD/GameOver.visible = not $HUD/GameOver.visible
quiz icon腕試し

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

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

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