스프라이트 복제 함수 설명
sprite_duplicate 함수는 입력으로 주어진 "index" 인자의 스프라이트의 복제본(새로운 스프라이트)의 인덱스를 반환합니다. 만약 함수가 실패하면 -1을 반환합니다. 이 함수는 원본 자산에서 스프라이트를 복사한 후에야 변형 작업을 수행할 수 있습니다. 예를 들어, 스프라이트의 경계 상자를 변경하거나 다른 스프라이트에서 알파 값을 설정하려면 먼저 복제한 후, 복제된 스프라이트에서 작업을 수행해야 합니다.
복제된 스프라이트는 생성될 때 고유한 텍스처 페이지에 배치되며, 여러 스프라이트를 복제하면 여러 텍스처 페이지가 생성되어 성능에 영향을 미칠 수 있습니다. 따라서 이 함수는 필요한 경우에만 사용해야 합니다.
문법
sprite_duplicate(index);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| index | Sprite Asset | 복제할 스프라이트의 인덱스 |
반환값
- 스프라이트 자산의 인덱스 또는 -1
예제
new_spr = sprite_duplicate(sprite_index);
위 코드는 현재 인스턴스의 스프라이트 인덱스를 사용하여 스프라이트를 복제하고, 이 새로운 스프라이트의 인덱스를 변수 "new_spr"에 저장합니다.
활용 예제
- 스프라이트 복제 후 변형하기
gml var original_spr = sprite_index; var duplicated_spr = sprite_duplicate(original_spr); if (duplicated_spr != -1) { // 복제된 스프라이트의 경계 상자 변경 sprite_set_bbox(duplicated_spr, 0, 0, 64, 64); } - 알파 값 설정하기
gml var original_spr = sprite_index; var duplicated_spr = sprite_duplicate(original_spr); if (duplicated_spr != -1) { // 복제된 스프라이트의 알파 값 변경 sprite_set_alpha(duplicated_spr, 0.5); } - 복제된 스프라이트 삭제하기
gml var duplicated_spr = sprite_duplicate(sprite_index); if (duplicated_spr != -1) { // 게임에서 더 이상 필요하지 않은 경우 삭제 sprite_delete(duplicated_spr); } - 여러 스프라이트 복제하기
gml var spr1 = sprite_duplicate(sprite_index); var spr2 = sprite_duplicate(sprite_index); var spr3 = sprite_duplicate(sprite_index); // 각 복제된 스프라이트에 대해 작업 수행 - 복제된 스프라이트를 사용하여 애니메이션 만들기
gml var duplicated_spr = sprite_duplicate(sprite_index); if (duplicated_spr != -1) { // 애니메이션 프레임 설정 sprite_set_animation(duplicated_spr, true); }