스켈레톤 애니메이션 프레임 설정
skeleton_animation_set_frame 함수는 주어진 트랙에 할당된 애니메이션을 지정한 프레임으로 설정하는 기능을 제공합니다. 프레임 인덱스는 0과 애니메이션의 프레임 수 사이의 실수 값이어야 합니다. 애니메이션의 프레임 수는 skeleton_animation_get_frames 함수를 사용하여 얻을 수 있습니다. 이 범위를 벗어난 값을 제공하면 애니메이션이 루프되어 차이를 보완합니다. 예를 들어, 애니메이션에 5개의 프레임이 있고 프레임을 8로 설정하면 실제로 표시되는 프레임은 3이 됩니다.
문법
skeleton_animation_set_frame(track, index);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| track | Real | 프레임을 설정할 애니메이션 트랙입니다. |
| index | Real | 애니메이션 프레임의 새로운 인덱스입니다. |
반환값
N/A
예제
if (global.pause) {
skeleton_animation_set_frame(0, -image_speed);
}
위의 코드는 global.pause 변수가 true일 때 트랙 0의 애니메이션 프레임 인덱스를 음수 이미지 속도로 설정하여 애니메이션을 사실상 일시 정지합니다.
활용 예제
- 애니메이션 루프 설정
gml skeleton_animation_set_frame(1, 10); // 1번 트랙의 프레임을 10으로 설정 - 프레임 속도 조절
gml if (image_index < 5) { skeleton_animation_set_frame(0, image_index + 1); // 현재 이미지 인덱스에 따라 프레임 설정 } - 애니메이션 일시 정지
gml if (is_paused) { skeleton_animation_set_frame(2, 0); // 2번 트랙을 첫 번째 프레임으로 설정 } - 애니메이션 재개
gml if (!is_paused) { skeleton_animation_set_frame(2, current_frame); // 현재 프레임으로 애니메이션 재개 } - 프레임 범위 체크
gml var total_frames = skeleton_animation_get_frames(0); var new_frame = (frame_input < 0) ? 0 : (frame_input >= total_frames) ? total_frames - 1 : frame_input; skeleton_animation_set_frame(0, new_frame); // 입력된 프레임이 범위를 벗어나지 않도록 설정