Menu
CoddyTech

마찰

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처럼 크면 몇 프레임 만에 멈춥니다.

challenge icon

챌린지

중급

영웅이 빠르게 멈추도록 하세요. 키를 누르지 않을 때는 프레임마다 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()
quiz icon실력 점검

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

입력과 이동의 모든 레슨

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