타이머로 파이프 움직이기
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 33개 중 21번째.
이제 파이프를 살펴봅시다. 파이프는 장면 pipe.tscn입니다. 위쪽과 아래쪽 파이프 사이에 틈이 있습니다. pipe.gd에서 파이프는 초당 SPEED픽셀의 속도로 왼쪽으로 이동합니다. 왼쪽 가장자리를 지나면 파이프가 스스로 제거되므로 오래된 파이프가 쌓이지 않습니다.
position.x -= SPEED * delta
if position.x < -60:
queue_free()장면에는 1.6초마다 작동하는 PipeTimer라는 Timer가 있습니다. main.gd에서 타이머의 timeout 신호를 연결하고 오른쪽 가장자리 너머에 파이프를 만듭니다.
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, 180)
$Pipes.add_child(pipe)Godot은 트리 순서에 따라 노드를 그립니다. Pipes가 Ground보다 먼저 나오므로, 지면이 모든 파이프의 아래쪽을 가립니다.
챌린지
중급pipe.gd에서const SPEED = 160을 추가하세요. 매 물리 프레임마다 파이프를 왼쪽으로 이동시키고,position.x가 -60보다 작아지면 파이프를 제거하세요.main.gd에서const PIPE = preload("res://pipe.tscn")을 추가하고$PipeTimer.timeout을 연결하세요. 시간이 초과될 때마다Pipes노드에(700, 180)위치로 파이프를 만드세요.
직접 해보기
extends Node2D
func _ready():
pass
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
프로젝트의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드