Menu
CoddyTech

土管にぶつかる

CoddyのGodotジャーニー「プロジェクト」セクションの一部。レッスン 23/33。

パイプまたは地面にぶつかると、ゲームが終了します。どちらの場合も、main.gd の1つの関数につながります。

func _on_crash():
	$HUD/Message.text = "Game Over"
	get_tree().paused = true

パイプ。パイプは、上半分と下半分の2つのシェイプを持つ Area2D です。隙間にはシェイプがありません。pipe.gd で、body_entered を接続して hit シグナルを発行します。main.gd は、新しいパイプを追加する前に、それぞれの hit を接続します。

地面。地面の上端は y = 318 にあります。飛行キャラクターの端は中央から12ピクセル離れているため、position.y が306を超えると地面に触れます。その後、flyer.gd が crashed を発行します。

飛行キャラクター、パイプ、タイマーは一時停止可能なので、一時停止するとすべて停止します。

challenge icon

チャレンジ

難しい
  1. pipe.gdで、signal hitを追加します。_readyでbody_enteredを接続し、ボディが入ったときにhitを発行します。
  2. flyer.gdで、signal crashedを追加し、position.yが306を超えたときに発行します。
  3. main.gdで、各パイプのhitとフライヤーのcrashedを_on_crashに接続します。これによりGame Overが表示され、ゲームが一時停止します。

自分で試してみよう

extends Node2D

const PIPE = preload("res://pipe.tscn")

func _ready():
	$PipeTimer.timeout.connect(_on_pipe_timer_timeout)

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, randf_range(100, 250))
	$Pipes.add_child(pipe)
quiz icon腕試し

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

プロジェクトのすべてのレッスン

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