엔진 가동하기
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 36개 중 12번째.
위쪽 키를 누르면 엔진이 작동해 배의 앞부분이 가리키는 방향으로 배를 밀어냅니다. Vector2.UP은 (0, -1)입니다. rotated(rotation)은 배가 회전한 만큼 화살표를 회전시킵니다:
if Input.is_action_pressed("move_up"):
velocity += Vector2.UP.rotated(rotation) * THRUST * delta
position += velocity * delta엔진은 위치가 아니라 속도를 바꿉니다. 위쪽 키에서 손을 떼도 배는 계속 미끄러져 나아갑니다. 멈추려면 반대 방향으로 돌아서 추진하세요.
배에는 숨겨진 Flame 자식 노드가 있습니다. 엔진이 작동하는 동안 표시하세요: $Flame.visible = Input.is_action_pressed("move_up").
챌린지
중급엔진으로 함선을 추진시키세요.
const THRUST = 300을 추가하세요.- 위쪽 키를 누르고 있는 동안
Vector2.UP.rotated(rotation) * THRUST * delta를velocity에 더하세요. - 키를 누르고 있는지와 관계없이 매 프레임
velocity * delta만큼 함선을 이동시키세요. - 위쪽 키를 누르고 있는 동안에만
$Flame을 표시하세요.
‘플레이’를 누르고 위쪽 키를 길게 누르세요. 불꽃이 타오르고, 키에서 손을 뗀 뒤에도 함선이 계속 미끄러지듯 움직입니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
extends CharacterBody2D
const TURN_SPEED = 4.0
func _physics_process(delta):
rotation += Input.get_axis("move_left", "move_right") * TURN_SPEED * delta
프로젝트의 모든 레슨
2프로젝트: 소행성 슈팅 게임
우주선 회전하기엔진 가동하기직접 연습해 보세요: Godot 플레이그라운드