draw_skeleton_time 함수 설명
draw_skeleton_time 함수는 주어진 애니메이션을 특정 시간에 맞춰 주어진 스킨으로 그리는 기능을 제공합니다. 시간 값은 0(시작)과 애니메이션의 종료 시간 사이여야 하며, 종료 시간은 skeleton_animation_get_duration() 함수를 사용하여 확인할 수 있습니다. 애니메이션의 총 지속 시간보다 큰 값으로 시간 값을 설정할 수 있지만, 이 경우 부동 소수점 정확도가 떨어질 수 있습니다.
문법
draw_skeleton_time(sprite, animname, skinname, time, x, y, xscale, yscale, rot, colour)
인자 설명
| 인자 이름 | 타입 | 설명 |
|---|---|---|
| sprite | Sprite | 그릴 스프라이트의 인덱스 |
| animname | String | 프레임을 가져올 애니메이션의 이름 (문자열) |
| skinname | String | 그리기 위해 사용할 스킨의 이름 (문자열) |
| time | Real | 애니메이션을 그릴 시간 프레임 (0부터 종료 시간까지, 초 단위) |
| x | Real | 스프라이트를 그릴 x 좌표 |
| y | Real | 스프라이트를 그릴 y 좌표 |
| xscale | Real | 스프라이트의 수평 스케일 (1 = 정상, 0.5 = 절반 등) |
| yscale | Real | 스프라이트의 수직 스케일 (1 = 정상, 0.5 = 절반 등) |
| rot | Real | 스프라이트의 회전 각도 (0 = 정상, 90 = 90도 반시계 방향 회전) |
| colour | Colour | 스프라이트와 혼합할 색상 |
반환값
N/A
활용 예제
예제 1: 애니메이션 프레임 그리기
var 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);
위 코드는 델타 타임을 사용하여 주어진 스켈레탈 애니메이션 스프라이트를 그립니다.
예제 2: 애니메이션 루프
var time += delta_time / 1000000;
var d = skeleton_animation_get_duration("run");
if (time > d) time -= d; // 애니메이션이 끝나면 다시 시작
draw_skeleton_time(sprite_index, "run", "skin2", time, x, y, 1, 1, 0, c_red);
이 코드는 "run" 애니메이션을 루프하여 그립니다.
예제 3: 스케일과 회전 적용
var time += delta_time / 1000000;
var d = skeleton_animation_get_duration("jump");
if (time > d) time -= d;
draw_skeleton_time(sprite_index, "jump", "skin3", time, x, y, 1.5, 1.5, 45, c_blue);
이 코드는 "jump" 애니메이션을 1.5배 크기로 45도 회전하여 그립니다.