스켈레톤 애니메이션 지속 시간 가져오기
skeleton_animation_get_duration 함수는 주어진 애니메이션 세트가 반복되기 전에 실행되는 시간을 초 단위로 반환합니다.
문법
skeleton_animation_get_duration(animname);
인수
| 인수 이름 | 타입 | 설명 |
|---|---|---|
| animname | 문자열 | 사용할 애니메이션 세트의 이름 |
반환값
- 애니메이션이 실행되는 시간(초)
활용 예제
예제 1: 현재 애니메이션의 프레임 계산
time += delta_time / 1000000;
var duration = skeleton_animation_get_duration(skeleton_animation_get());
var frame = floor((image_number * (mTime / duration)) + 0.5) % image_number;
image_index = frame;
draw_self();
위 코드는 현재 할당된 스켈레탈 애니메이션 스프라이트에 대해 image_index를 올바른 값으로 설정합니다.
예제 2: 스켈레톤 애니메이션 그리기
time += delta_time / 1000000;
var d = skeleton_animation_get_duration("walk");
if time > d time -= d;
draw_skeleton_time(sprite_index, "walk", "skin1", time, x, y, image_xscale, image_yscale, image_angle, c_white);
위 코드는 델타 타임을 사용하여 주어진 스켈레탈 애니메이션 스프라이트를 그립니다.
추가 활용 예제
예제 3: 애니메이션 루프 처리
if (time >= skeleton_animation_get_duration("run")) {
time = 0; // 애니메이션이 끝나면 시간 초기화
}
이 코드는 "run" 애니메이션이 끝나면 시간을 초기화하여 애니메이션이 반복되도록 합니다.
예제 4: 애니메이션 속도 조절
var speed_factor = 1.5; // 애니메이션 속도 증가
time += delta_time / 1000000 * speed_factor;
이 코드는 애니메이션의 속도를 1.5배로 증가시킵니다.
예제 5: 애니메이션 상태 전환
if (is_key_pressed(vk_space)) {
current_animation = "jump"; // 스페이스 키를 누르면 점프 애니메이션으로 전환
}
이 코드는 스페이스 키를 눌렀을 때 애니메이션을 "jump"로 전환합니다.