Menu
CoddyTech

균형 잡힌 대각선 이동

Coddy Godot 여정의 입력과 이동 섹션에 포함된 레슨. 28개 중 11번째.

지난 수업의 주인공은 대각선으로 너무 빠르게 움직입니다. 위쪽과 오른쪽 입력은 Vector2(200, -200)의 속도를 만듭니다. 이 벡터의 길이는 200이 아니라 약 283픽셀입니다.

.normalized()는 벡터의 방향을 유지하면서 길이를 정확히 1로 만듭니다. 여기에 속도를 곱하세요.

var direction = Vector2(Input.get_axis("move_left", "move_right"), Input.get_axis("move_up", "move_down"))
velocity = direction.normalized() * speed
move_and_slide()

그러면 어느 방향으로 움직이든 초당 200픽셀로 이동합니다. Vector2(0, 0)은 정규화해도 0을 유지하므로 주인공은 멈춥니다.

Input.get_vector()는 길이가 최대 1인 방향 벡터를 반환합니다. velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * speed를 사용해도 대각선 이동 속도가 공정하게 유지됩니다.

challenge icon

챌린지

중급

영웅이 대각선을 포함한 모든 방향으로 초당 200픽셀의 속도로 걷게 하세요. Vector2 방향에 .normalized()를 사용하거나 Input.get_vector()를 사용하세요.

직접 해보기

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	velocity.y = Input.get_axis("move_up", "move_down") * speed
	move_and_slide()
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

입력과 이동의 모든 레슨

직접 연습해 보세요: Godot 플레이그라운드