타이머로 파이프 움직이기
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 36개 중 24번째.
다음은 파이프입니다. 파이프는 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 플레이그라운드