파이프에 부딪히기
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 36개 중 26번째.
파이프나 바닥에 부딪히면 게임이 끝나야 합니다. 두 경우 모두 main.gd의 한 함수로 이어집니다.
func _on_crash():
$HUD/Message.text = "Game Over"
get_tree().paused = true파이프. 파이프는 위쪽 절반과 아래쪽 절반, 두 개의 모양으로 이루어진 Area2D입니다. 틈에는 모양이 없습니다. pipe.gd에서 body_entered를 연결하고 hit 신호를 내보냅니다. main.gd는 새 파이프를 추가하기 전에 각 파이프의 hit를 연결합니다.
바닥. 바닥의 위쪽은 y = 318에 있습니다. 날아다니는 캐릭터의 가장자리는 중심에서 12픽셀 떨어져 있으므로 position.y가 306을 넘으면 바닥에 닿습니다. 그러면 flyer.gd가 crashed를 내보냅니다.
날아다니는 캐릭터와 파이프, 타이머는 일시 정지할 수 있으므로 게임을 일시 정지하면 모두 멈춥니다.
챌린지
어려움충돌하면 게임을 끝내세요.
pipe.gd에서signal hit을 추가하고,_ready에서body_entered를 연결한 뒤, 물체가 들어오면hit을 내보내세요.flyer.gd에서signal crashed를 추가하고,position.y가306보다 커지면 신호를 내보내세요.main.gd에서 각 파이프의hit과 플레이어의crashed를_on_crash에 연결하세요. 이 함수는Game Over를 표시하고 게임을 일시 정지합니다.
‘플레이’를 누르고 떨어져 보세요. 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)
프로젝트의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드