layer_tilemap_exists 함수 설명
layer_tilemap_exists 함수는 특정 레이어에 타일 맵 요소가 존재하는지 확인하는 데 사용됩니다. 이 함수는 레이어 핸들(레이어를 생성할 때 layer_create()를 사용하여 얻음)이나 레이어 이름(문자열 형식으로, 성능에 영향을 미침)과 타일 맵 요소 ID(타일 맵 요소를 생성할 때 layer_tilemap_create()를 사용하거나 layer_tilemap_get_id() 함수를 사용할 때 얻음)를 인수로 받아들입니다. 함수는 요소가 존재하면 true를, 존재하지 않으면 false를 반환합니다. 이 함수는 현재 타겟 룸의 범위 내에서 작동합니다. 기본적으로 함수가 호출되는 룸에서 작동하며, layer_set_target_room() 함수를 사용하여 설정할 수 있습니다.
문법
layer_tilemap_exists(layer_id, tilemap_element_id)
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| layer_id | String 또는 Layer ID | 타겟할 레이어의 핸들(또는 문자열로 된 레이어 이름) |
| tilemap_element_id | Tile Map Element ID | 확인할 타일 맵 요소의 고유 ID 값 |
반환 값
- Boolean
예제
var lay_id = layer_get_id("tilemap_trees");
if (layer_tilemap_exists(lay_id, global.Treestilemap)) {
layer_tilemap_destroy(lay_id, global.Treestilemap);
}
위 코드는 "tilemap_trees" 레이어에서 주어진 타일 맵 요소가 존재하는지 확인하고, 존재할 경우 해당 요소를 파괴합니다(하지만 레이어는 파괴되지 않음).
활용 예제
예제 1: 타일 맵 요소 존재 여부 확인
var layer_id = layer_get_id("background_layer");
if (layer_tilemap_exists(layer_id, global.BackgroundTilemap)) {
show_message("배경 타일 맵이 존재합니다.");
}
예제 2: 타일 맵 요소 삭제
var layer_id = layer_get_id("foreground_layer");
if (layer_tilemap_exists(layer_id, global.ForegroundTilemap)) {
layer_tilemap_destroy(layer_id, global.ForegroundTilemap);
show_message("전경 타일 맵이 삭제되었습니다.");
}
예제 3: 타일 맵 요소 추가
var layer_id = layer_get_id("main_layer");
if (!layer_tilemap_exists(layer_id, global.NewTilemap)) {
layer_tilemap_create(layer_id, global.NewTilemap);
show_message("새로운 타일 맵이 추가되었습니다.");
}
예제 4: 여러 레이어에서 타일 맵 요소 확인
var layers = ["layer1", "layer2", "layer3"];
for (var i = 0; i < array_length(layers); i++) {
var layer_id = layer_get_id(layers[i]);
if (layer_tilemap_exists(layer_id, global.SomeTilemap)) {
show_message(layers[i] + "에서 타일 맵 요소가 존재합니다.");
}
}