파이프에 부딪히기
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 33개 중 23번째.
파이프나 지면에 부딪히면 게임이 끝나야 합니다. 둘 다 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를 표시하고 게임을 일시 중지합니다.
직접 해보기
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 플레이그라운드