キー入力で再スタート
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を設定してください。そうしないと、新しいゲームは一時停止した状態で始まります。
チャレンジ
簡単ゲームオーバー後に、プレイヤーがEを押して再プレイできるようにします。
_ready()で、このノードのprocess_modeをNode.PROCESS_MODE_ALWAYSに設定します。_process()で、livesが0で、actionが押された直後の場合、ゲームの一時停止を解除してシーンを再読み込みします。
自分で試してみよう
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
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ゲームのルールのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド