image_index 설명서
개요
image_index는 스프라이트의 하위 이미지 중 하나를 나타내는 변수입니다. 이 변수를 사용하여 스프라이트의 애니메이션을 제어하거나 정적 스프라이트의 상태를 변경할 수 있습니다. 예를 들어, 버튼의 상태를 변경하는 것과 유사합니다.
사용 방법
- 애니메이션 스프라이트: 현재 애니메이션 프레임을 확인하려면
image_index변수를 사용합니다. - 정적 스프라이트: 새로운 하위 이미지를 선택하려면 이 변수를 원하는 하위 이미지로 설정합니다.
주의 사항
- 이 변수를 변경한 내용이 보이려면 인스턴스는
nodraw이벤트를 가져야 하거나draw_self()또는draw_sprite_ext()와 같은 그리기 함수를 사용해야 합니다. - 프레임에 있는 방송 메시지는 이 변수를 직접 설정해도 트리거되지 않습니다.
- 스켈레탈 애니메이션 스프라이트를 사용할 때도
image_index값을 가져오고 설정할 수 있습니다.
프레임 반환
- 늘어난 프레임은 소수점으로 반환됩니다. 예를 들어, 스프라이트 편집기에서 프레임 1을 4프레임으로 늘리면, 반환되는 값은 1.0, 1.25, 1.5, 1.75가 됩니다.
문법
image_index;
반환 값
- 실수형(단정도 부동 소수점 값)
예제
if (image_speed > 0) {
if (image_index >= image_number - 1) {
instance_destroy();
}
}
위 코드는 스프라이트가 애니메이션 중인지 확인하고, 현재 image_index가 마지막 프레임에 도달했는지 확인하여 인스턴스를 파괴합니다.
활용 예제
| 예제 번호 | 설명 |
|---|---|
| 1 | 스프라이트 애니메이션 시작하기 |
gml |
image_speed = 1; |
| 2 | 스프라이트 상태 변경하기 |
gml |
image_index = 2; |
| 3 | 애니메이션이 끝났는지 확인하기 |
gml |
if (image_index >= image_number - 1) { / 처리 / } |
| 4 | 스프라이트 반복 애니메이션 만들기 |
gml |
if (image_index >= image_number) { image_index = 0; } |
| 5 | 특정 조건에서 스프라이트 멈추기 |
gml |
if (some_condition) { image_speed = 0; } |
이 문서는 image_index 변수를 활용하여 스프라이트 애니메이션을 제어하는 방법에 대한 기본적인 이해를 제공합니다.