천천히 속도 높이기
Coddy Godot 여정의 입력과 이동 섹션에 포함된 레슨. 28개 중 18번째.
영웅은 한 프레임 만에 최고 속도에 도달하고 한 프레임 만에 멈춥니다. 움직임이 뻣뻣하게 느껴집니다.
move_toward(from, to, step)은 수 from을 to 방향으로 최대 step만큼 이동시키며, 그 값을 넘지 않습니다. move_toward(0, 220, 15)의 결과는 15입니다. 매 프레임 반복하면 30, 45와 같이 증가하다가 220에 도달합니다.
velocity.x에 적용해, 키 입력이 요청하는 속도를 목표로 하세요.
var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)acceleration은 초당 증가하는 속도이므로 delta를 곱합니다. 값이 900이면 영웅은 약 4분의 1초 만에 220에 도달합니다. 키를 누르지 않으면 목표값은 0이므로 영웅은 속도를 줄여 멈춥니다.
챌린지
중급영웅이 부드럽게 가속하고 감속하도록 만드세요. 매 프레임 acceleration * delta만큼 direction * speed를 향해 move_toward를 사용하여 velocity.x를 설정하세요.
직접 해보기
extends CharacterBody2D
var speed = 220
var acceleration = 900
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
velocity.x = Input.get_axis("move_left", "move_right") * speed
move_and_slide()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
입력과 이동의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드