sprite_replace 함수 설명
sprite_replace 함수는 sprite_add() 함수와 거의 동일하게 작동하지만, 가져오는 스프라이트의 인덱스를 반환하는 대신, 이전에 생성된 스프라이트 인덱스를 덮어씁니다. 이 함수를 사용할 때는 sprite_add(), sprite_create_from_surface(), 또는 sprite_duplicate()와 같은 다른 함수로 생성하고 저장된 스프라이트 인덱스를 사용해야 하며, 리소스 트리 스프라이트 자산을 사용해서는 안 됩니다.
이 함수를 사용하여 게임 자산에서 스프라이트를 교체할 수 있지만, 교체하는 스프라이트의 참조 ID를 잃게 되므로, game_restart()를 호출하더라도 권장되지 않습니다. 교체되는 스프라이트에 관계없이, 이 함수는 스프라이트를 위한 새로운 텍스처 페이지를 생성하므로, 렌더링을 위한 텍스처 스왑 수를 증가시켜 성능에 악영향을 미칠 수 있습니다.
함수 구문
sprite_replace(ind, fname, imgnumb, removeback, smooth, xorig, yorig);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| ind | Sprite Asset | 영구적으로 교체할 스프라이트의 인덱스입니다. |
| fname | String | 새로운 스프라이트로 만들 이미지의 파일 이름입니다. |
| imgnumb | Real | 스프라이트를 수평으로 잘라낼 프레임 수입니다. 하나의 이미지에 대해서는 1을 사용합니다. |
| removeback | Boolean | 배경 색상(왼쪽 하단 픽셀)을 가진 모든 픽셀을 투명하게 만들지 여부를 나타냅니다. |
| smooth | Boolean | 가장자리를 부드럽게 할지 여부를 나타냅니다. |
| xorig | Real | 스프라이트의 왼쪽 상단 모서리를 기준으로 한 원점의 x 좌표입니다. |
| yorig | Real | 스프라이트의 왼쪽 상단 모서리를 기준으로 한 원점의 y 좌표입니다. |
반환값
N/A
활용 예제
// 스프라이트 교체 예제
sprite_replace(spr_banner, "gravemaker.png", 1, false, false, 0, 0);
위 코드는 "spr_banner"에 인덱스된 이미지 자산을 외부 소스에서 로드한 다른 이미지로 교체합니다.
추가 활용 예제
- 스프라이트를 교체하여 게임의 UI를 업데이트하는 경우:
sprite_replace(spr_button, "new_button.png", 1, true, true, 0, 0);
- 애니메이션 스프라이트를 교체하는 경우:
sprite_replace(spr_character_run, "character_run.gif", 8, false, false, 0, 0);
- 배경 스프라이트를 교체하는 경우:
sprite_replace(spr_background, "new_background.png", 1, true, false, 0, 0);
- 특정 상황에서 스프라이트를 교체하는 경우:
if (player.health < 50) {
sprite_replace(spr_player, "player_injured.png", 1, false, false, 0, 0);
}
- 게임 시작 시 스프라이트를 초기화하는 경우:
sprite_replace(spr_start_screen, "start_screen.png", 1, true, false, 0, 0);