lerp 함수 설명 및 활용 예제

lerp 함수란?

lerp 함수는 두 값 사이의 위치를 주어진 비율에 따라 계산하여 반환하는 함수입니다. 예를 들어, lerp(0, 10, 0.5)를 호출하면 0과 10의 중간값인 5가 반환됩니다. 이 함수는 보간(interpolation)뿐만 아니라 외삽(extrapolation)에도 사용할 수 있습니다. 예를 들어, lerp(0, 10, 2)를 호출하면 20이 반환됩니다.

문법

lerp(a, b, amt)

매개변수 설명

매개변수 타입 설명
a Real 첫 번째 값
b Real 두 번째 값
amt Real 보간할 비율

반환값

  • Real: 보간된 값

예제 코드

var _gamespeed = game_get_speed(gamespeed_fps);
xx = lerp(x, x + hspeed, _gamespeed);
yy = lerp(y, y + vspeed, _gamespeed);

위 코드는 lerp 함수를 사용하여 게임 시간이 1초 후 인스턴스가 이동할 위치를 예측합니다.

활용 예제

예제 1: 캐릭터 이동

캐릭터가 부드럽게 이동하도록 하는 예제입니다.

var target_x = mouse_x;
var target_y = mouse_y;
x = lerp(x, target_x, 0.1);
y = lerp(y, target_y, 0.1);

예제 2: 색상 변화

객체의 색상을 부드럽게 변화시키는 예제입니다.

var target_color = c_red;
image_blend = lerp(image_blend, target_color, 0.05);

예제 3: 카메라 이동

카메라가 부드럽게 목표 위치로 이동하도록 하는 예제입니다.

var target_camera_x = player.x;
var target_camera_y = player.y;
camera_x = lerp(camera_x, target_camera_x, 0.1);
camera_y = lerp(camera_y, target_camera_y, 0.1);

예제 4: UI 요소 애니메이션

UI 요소의 위치를 부드럽게 애니메이션하는 예제입니다.

var target_ui_x = 100;
var target_ui_y = 50;
ui_element.x = lerp(ui_element.x, target_ui_x, 0.2);
ui_element.y = lerp(ui_element.y, target_ui_y, 0.2);

이와 같이 lerp 함수를 활용하여 다양한 상황에서 부드러운 전환 효과를 구현할 수 있습니다.