Menu
CoddyTech

주행

Coddy의 Godot 게임: 네온 서킷 코스 레슨. 20개 중 1번째.

이 과정에서는 기능 하나마다 수업 하나씩 진행하며 게임 하나를 완성합니다. 위에서 내려다본 네온 레이싱 게임입니다. 빛나는 트랙을 세 바퀴 돌며 라이벌 자동차 세 대와 경주합니다.

프로젝트에는 세 가지 스크립트가 제공됩니다. 자동차에 적용되는 car.gd, 라이벌 자동차용 rival.gd, 경주용 race.gd입니다. 눈에 보이지 않는 두 가지 요소도 제공됩니다. 도로를 그리고 도로에 관한 질문에 답하는 트랙과 장면입니다. 이 요소들은 변경할 필요가 없습니다.

오늘은 자동차가 운전하는 법을 배웁니다. 자동차는 velocity를 유지합니다. 이는 매초 자동차가 이동하는 픽셀 수와 이동 방향을 뜻합니다. 자동차가 향하는 방향은 rotation을 방향으로 변환한 것입니다.

var forward := Vector2.RIGHT.rotated(rotation)

위쪽 키를 누르고 있는 동안 속도는 그 방향으로 초당 accel만큼 증가합니다. Input.get_action_strength는 키를 누르고 있으면 1.0이고, 누르고 있지 않으면 0.0입니다.

var throttle := Input.get_action_strength("move_up")
velocity += forward * throttle * accel * delta
velocity = velocity.limit_length(max_speed)
position += velocity * delta

limit_length는 속도를 max_speed 이하로 유지합니다. 마지막 프레임 이후 경과한 시간(초)인 delta를 곱하면 화면이 빠르든 느리든 속도가 같게 유지됩니다.

challenge icon

챌린지

쉬움
  1. car.gd에서 _physics_process의 pass를 위의 줄들로 바꾸세요.
  2. 마지막으로, 운전할 때 배기가 빛나게 하세요: $Exhaust.emitting = throttle > 0.0.
  3. ‘플레이’를 누르고 위쪽 화살표(또는 W)를 누르고 있으세요.

직접 해보기

extends Node2D

@export var accel := 260.0
@export var max_speed := 200.0

var velocity := Vector2.ZERO


func _physics_process(delta: float) -> void:
	pass  # drive here

Godot 게임: 네온 서킷의 모든 레슨

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