layer_sprite_destroy 함수 설명
layer_sprite_destroy 함수는 주어진 스프라이트 요소를 제거하는 기능을 제공합니다. 이 함수는 스프라이트 ID를 인자로 받아 해당 스프라이트를 삭제합니다. 스프라이트 ID는 layer_sprite_create() 함수를 사용하여 스프라이트를 생성할 때 얻거나, layer_get_sprite_id()와 함께 레이어 핸들을 사용할 때 얻을 수 있습니다. 이 함수는 레이어 자체를 제거하지 않고, 해당 레이어에서 스프라이트만 제거합니다. 만약 스프라이트가 방 편집기에서 추가된 것이라면, 방을 나갔다가 다시 들어오면 스프라이트가 다시 생성됩니다. 그러나 방이 지속적(persistent)인 경우, 방 지속성이 꺼지지 않는 한 스프라이트는 제거됩니다.
문법
layer_sprite_destroy(sprite_element_id)
인자 설명
| 인자 이름 | 타입 | 설명 |
|---|---|---|
| sprite_element_id | Sprite Element ID | 제거할 스프라이트의 고유 ID 값입니다. |
반환값
- N/A
예제
var lay_id = layer_get_id("Asset_Trees");
var spr_id = layer_sprite_get_id(lay_id, "graphic_254367CB");
if (layer_sprite_exists(lay_id, spr_id)){
layer_sprite_destroy(spr_id);
}
위 코드는 "Asset_Trees" 레이어에서 주어진 스프라이트 요소가 존재하는지 확인하고, 존재할 경우 해당 스프라이트를 제거합니다(레이어는 제거하지 않음).
활용 예제
예제 1: 스프라이트 제거 후 새로운 스프라이트 추가
var lay_id = layer_get_id("Asset_Trees");
var spr_id = layer_sprite_get_id(lay_id, "graphic_254367CB");
if (layer_sprite_exists(lay_id, spr_id)){
layer_sprite_destroy(spr_id);
}
var new_spr_id = layer_sprite_create(lay_id, "new_graphic");
예제 2: 특정 조건에서 스프라이트 제거
if (player_health < 50) {
var lay_id = layer_get_id("Asset_Trees");
var spr_id = layer_sprite_get_id(lay_id, "graphic_254367CB");
if (layer_sprite_exists(lay_id, spr_id)){
layer_sprite_destroy(spr_id);
}
}
예제 3: 방이 지속적일 때 스프라이트 제거
if (room_persistent) {
var lay_id = layer_get_id("Asset_Trees");
var spr_id = layer_sprite_get_id(lay_id, "graphic_254367CB");
if (layer_sprite_exists(lay_id, spr_id)){
layer_sprite_destroy(spr_id);
}
}
예제 4: 모든 스프라이트 제거
var lay_id = layer_get_id("Asset_Trees");
var sprite_count = layer_sprite_count(lay_id);
for (var i = 0; i < sprite_count; i++) {
var spr_id = layer_sprite_get_id(lay_id, i);
if (layer_sprite_exists(lay_id, spr_id)){
layer_sprite_destroy(spr_id);
}
}
이 문서에서는 layer_sprite_destroy 함수의 사용법과 다양한 활용 예제를 설명하였습니다.