sprite_assign 함수 설명
sprite_assign 함수는 두 개의 스프라이트 인덱스를 받아서 하나의 스프라이트 이미지를 다른 스프라이트로 복사하는 기능을 제공합니다. 이 함수를 사용하면 한 스프라이트를 다른 인덱스로 "복제"할 수 있습니다. 단, 게임 리소스에 복사할 수는 없으며, 복사할 스프라이트는 미리 sprite_add() 또는 sprite_duplicate() 함수를 사용하여 생성해야 합니다.
문법
sprite_assign(index, sprite);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| index | 정수 | 복사할 스프라이트의 인덱스 (즉, 덮어쓸 인덱스) |
| sprite | 정수 | 복사할 스프라이트의 인덱스 |
반환값
- 없음
예제
다음 코드는 global.Player_Sprite가 스프라이트를 포함하고 있는지 확인하고, 포함하고 있다면 sprite_assign을 사용하여 외부 파일에서 로드한 스프라이트로 변경합니다. 만약 스프라이트가 없다면 새로운 스프라이트를 로드하고 그 인덱스를 변수에 저장합니다.
if (sprite_exists(global.Player_Sprite)) {
var t_spr = sprite_add("player.png", 16, true, true, 0, 0);
sprite_assign(global.Player_Sprite, t_spr);
sprite_delete(t_spr);
} else {
global.Player_Sprite = sprite_add("player.png", 16, true, true, 0, 0);
}
활용 예제
- 스프라이트 업데이트: 게임 중에 캐릭터의 스프라이트를 새로운 이미지로 업데이트할 때 사용할 수 있습니다.
gml if (player_level_up) { var new_sprite = sprite_add("player_level_up.png", 16, true, true, 0, 0); sprite_assign(global.Player_Sprite, new_sprite); sprite_delete(new_sprite); } - 스프라이트 변경: 특정 이벤트 발생 시 스프라이트를 변경하는 경우.
gml if (event_triggered) { var alternate_sprite = sprite_add("alternate_player.png", 16, true, true, 0, 0); sprite_assign(global.Player_Sprite, alternate_sprite); sprite_delete(alternate_sprite); } - 스프라이트 복제: 여러 캐릭터가 동일한 스프라이트를 사용할 때 유용합니다.
gml var clone_sprite = sprite_add("enemy.png", 16, true, true, 0, 0); sprite_assign(global.Enemy_Sprite, clone_sprite); sprite_delete(clone_sprite); - 스프라이트 리셋: 게임 시작 시 기본 스프라이트로 리셋하는 경우.
gml var default_sprite = sprite_add("default_player.png", 16, true, true, 0, 0); sprite_assign(global.Player_Sprite, default_sprite); sprite_delete(default_sprite); - 스프라이트 상태 변경: 게임 내에서 상태에 따라 스프라이트를 변경할 때.
gml if (is_injured) { var injured_sprite = sprite_add("player_injured.png", 16, true, true, 0, 0); sprite_assign(global.Player_Sprite, injured_sprite); sprite_delete(injured_sprite); }