sprite_flush_multi 함수 설명
sprite_flush_multi 함수는 주어진 스프라이트에 대한 텍스처 페이지를 텍스처 메모리(VRAM)에서 제거하는 기능을 제공합니다. 이 함수는 스프라이트를 배열로 입력받아 해당 스프라이트에 할당된 텍스처 페이지를 메모리에서 제거합니다.
반환값
-1: 선택한 자산에 대해 플러시가 지원되지 않는 경우0: 모든 작업이 정상적으로 수행된 경우
주의사항
만약 텍스처 페이지가 방의 다른 인스턴스 스프라이트나 배경 등에서 사용되고 있다면, 성능 저하가 발생할 수 있습니다. 이 경우 페이지가 즉시 다시 메모리로 로드되기 때문입니다. 따라서 이 함수를 사용할 때 주의가 필요합니다.
문법
sprite_flush_multi(array);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| array | Array | 플러시할 스프라이트를 포함하는 배열 |
예제
spr_a[0] = spr_Player_Aura1;
spr_a[1] = spr_Player_Aura2;
spr_a[2] = spr_Player_Aura3;
spr_a[3] = spr_Player_Aura4;
sprite_flush_multi(spr_a);
위 코드는 각 요소가 스프라이트 인덱스를 포함하는 배열을 생성합니다. 이 배열은 메모리에서 해당 스프라이트의 텍스처를 지우는 데 사용됩니다.
활용 예제
- 게임 시작 시 메모리 최적화
gml var sprites_to_flush = [spr_Player_Aura1, spr_Player_Aura2, spr_Player_Aura3]; sprite_flush_multi(sprites_to_flush); - 레벨 전환 시 불필요한 텍스처 제거
gml var level_sprites = [spr_Level1_Enemy, spr_Level1_Background]; sprite_flush_multi(level_sprites); - 특정 이벤트 발생 시 텍스처 정리
gml if (event_type == ev_mousebuttonup) { var clicked_sprites = [spr_Button1, spr_Button2]; sprite_flush_multi(clicked_sprites); } - 메모리 사용량 모니터링
gml var memory_check_sprites = [spr_Monster1, spr_Monster2]; var result = sprite_flush_multi(memory_check_sprites); if (result == 0) { show_message("메모리에서 스프라이트가 성공적으로 제거되었습니다."); } - 게임 종료 시 모든 텍스처 정리
gml var all_sprites = [spr_Player, spr_Enemy, spr_Background]; sprite_flush_multi(all_sprites);