마찰
Coddy Godot 여정의 입력과 이동 섹션에 포함된 레슨. 28개 중 19번째.
대부분의 게임 캐릭터는 출발할 때보다 더 빨리 멈춥니다. 키를 누르지 않았을 때 감속하는 현상을 마찰이라고 합니다.
멈출 때 다른 값을 사용하려면 코드에 두 가지 경로가 필요합니다. else는 if에 두 번째 경로를 추가하며, 두 경로 중 정확히 하나만 실행됩니다.
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)==는 두 값이 같은지 확인합니다. = 하나는 변수에 값을 설정합니다. 키를 누르지 않았을 때 direction == 0은 참입니다.
300처럼 friction이 작으면 얼음 위를 미끄러지듯 움직입니다. 2400처럼 크면 몇 프레임 만에 멈춥니다.
챌린지
중급영웅이 빠르게 멈추도록 하세요. 키를 누르지 않을 때는 프레임마다 friction * delta만큼 velocity.x를 0으로 줄이세요. 키를 누르고 있을 때는 acceleration만큼 계속 속도를 높이세요.
직접 해보기
extends CharacterBody2D
var speed = 220
var acceleration = 900
var friction = 2400
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
var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
move_and_slide()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
입력과 이동의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드