스프라이트 서브 이미지 수 가져오기
스프라이트는 최소한 하나의 서브 이미지를 가져야 하며, 이 함수는 스프라이트가 가진 서브 이미지의 개수를 반환합니다. 스프라이트의 서브 이미지는 0부터 번호가 매겨지므로, 만약 이 함수가 3을 반환한다면, 스프라이트는 0, 1, 2의 번호를 가진 3개의 서브 이미지를 가지고 있다는 의미입니다.
문법
sprite_get_number(index);
매개변수
| 매개변수 | 타입 | 설명 |
|---|---|---|
| index | 정수 | 스프라이트의 인덱스 |
반환값
- 서브 이미지의 개수를 정수로 반환합니다.
예제
image_index = floor(random(sprite_get_number(sprite_index)));
위의 코드는 스프라이트가 가진 서브 이미지의 수에 따라 랜덤한 프레임으로 이미지 인덱스를 설정합니다.
활용 예제
1. 스프라이트 애니메이션
스프라이트의 서브 이미지를 사용하여 애니메이션을 만들 수 있습니다. 예를 들어, 캐릭터가 걷는 애니메이션을 만들 때 서브 이미지를 순차적으로 변경할 수 있습니다.
if (keyboard_check(vk_right)) {
image_index = (image_index + 1) % sprite_get_number(sprite_index);
}
2. 랜덤 스프라이트 선택
게임에서 다양한 적 캐릭터를 랜덤으로 생성할 때 사용할 수 있습니다.
var random_enemy = floor(random(sprite_get_number(enemy_sprite_index)));
instance_create(x, y, enemy_object[random_enemy]);
3. 스프라이트 상태 관리
스프라이트의 상태에 따라 다른 서브 이미지를 표시할 수 있습니다. 예를 들어, 캐릭터가 점프할 때와 서있을 때 다른 이미지를 사용할 수 있습니다.
if (is_jumping) {
image_index = 1; // 점프 이미지
} else {
image_index = 0; // 서 있는 이미지
}
4. UI 요소에 활용
UI 요소의 상태에 따라 다른 이미지를 표시할 수 있습니다. 버튼이 눌렸을 때와 눌리지 않았을 때 다른 이미지를 사용할 수 있습니다.
if (button_pressed) {
image_index = 2; // 눌린 상태 이미지
} else {
image_index = 0; // 기본 상태 이미지
}
5. 게임 오버 화면
게임 오버 시 다양한 애니메이션 효과를 주기 위해 서브 이미지를 활용할 수 있습니다.
if (game_over) {
image_index = (image_index + 1) % sprite_get_number(game_over_sprite_index);
}
이와 같이 sprite_get_number 함수를 활용하여 다양한 게임 요소를 구현할 수 있습니다.