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
함수를 활용하여 다양한 상황에서 부드러운 전환 효과를 구현할 수 있습니다.