스프라이트 삭제 함수 (sprite_delete)
sprite_delete 함수는 게임에서 스프라이트를 삭제하고, 해당 스프라이트에 예약된 메모리를 해제하는 기능을 제공합니다. 이 함수는 외부 소스에서 스프라이트를 생성하거나 변경할 때 매우 중요합니다. 예를 들어, sprite_add()를 사용하여 파일에서 스프라이트를 로드하거나 sprite_duplicate()를 사용하여 스프라이트를 복제할 때 필요합니다. 더 이상 필요하지 않은 자산을 제거하거나, 변수에 할당된 인덱스 자산을 지우고 새로운 자산을 재할당하기 전에 사용해야 합니다.
이 함수는 자산 브라우저의 자산으로 포함된 스프라이트를 삭제하는 데 사용할 수 없습니다. 함수가 성공적으로 스프라이트를 삭제하면 true를 반환하고, 유효하지 않은 스프라이트(예: 이미 삭제된 경우)일 경우 false를 반환합니다.
문법
sprite_delete(index);
인자 설명
| 인자 | 타입 | 설명 |
|---|---|---|
| index | Sprite Asset | 삭제할 스프라이트의 인덱스 |
반환 값
| 반환 타입 | 설명 |
|---|---|
| Boolean | 스프라이트가 성공적으로 삭제되면 true, 유효하지 않은 스프라이트일 경우 false |
활용 예제
예제 1: 스프라이트 생성 후 삭제
var spr = sprite_create_from_surface(application_surface, 0, 0, 32, 32, false, false, 16, 16);
sprite_merge(spr_Player, spr);
sprite_delete(spr);
위 코드는 애플리케이션 표면에서 스프라이트를 생성하고, 이를 spr_Player 변수에 병합한 후 메모리에서 삭제합니다.
예제 2: 스프라이트를 동적으로 관리하기
var new_sprite = sprite_add("path/to/sprite.png", 1, 0, 0, 32, 32);
if (new_sprite != -1) {
// 스프라이트가 성공적으로 추가되었을 때
// 필요한 작업 수행
sprite_delete(new_sprite);
}
이 코드는 파일에서 스프라이트를 추가하고, 성공적으로 추가되면 해당 스프라이트를 삭제합니다.
예제 3: 스프라이트 인덱스 확인 후 삭제
if (sprite_exists(spr_Player)) {
sprite_delete(spr_Player);
}
이 예제는 spr_Player 스프라이트가 존재하는지 확인한 후, 존재하면 삭제하는 코드입니다.
예제 4: 반복문을 통한 스프라이트 삭제
for (var i = 0; i < sprite_count; i++) {
if (sprite_exists(i)) {
sprite_delete(i);
}
}
이 코드는 모든 스프라이트를 반복하여 존재하는 스프라이트를 삭제합니다.
예제 5: 조건에 따른 스프라이트 삭제
if (some_condition) {
sprite_delete(spr_Enemy);
}
조건이 참일 경우 특정 스프라이트(spr_Enemy)를 삭제하는 코드입니다.
이와 같은 방식으로 sprite_delete 함수를 활용하여 게임에서 스프라이트를 효율적으로 관리할 수 있습니다.