layer_exists 함수 설명
layer_exists 함수는 주어진 레이어가 존재하는지 확인하는 데 사용됩니다. 이 함수는 레이어 핸들(레이어를 생성할 때 layer_create()를 사용하여 얻은) 또는 레이어 이름(문자열 형태)을 인수로 받아들입니다. 함수는 레이어가 존재하면 true를, 존재하지 않으면 false를 반환합니다. 이 함수는 현재 타겟 룸의 범위 내에서 작동하며, 기본적으로 함수가 호출되는 룸에서 작동합니다. 타겟 룸은 layer_set_target_room() 함수를 사용하여 설정할 수 있습니다.
문법
layer_exists(layer_name)
인수
| 인수 이름 | 유형 | 설명 |
|---|---|---|
| layer_name | String or Layer | 레이어의 이름(문자열 또는 핸들) |
반환값
| 반환값 | 유형 | 설명 |
|---|---|---|
| Boolean | Boolean | 레이어가 존재하면 true, 아니면 false |
예제
if (!layer_exists(global.tileLayer)) {
global.tileLayer = layer_create(1000);
}
위 코드는 전역 변수에 저장된 레이어가 실제로 존재하는지 확인하고, 존재하지 않으면 레이어를 생성합니다.
활용 예제
예제 1: 레이어 존재 확인 후 삭제
if (layer_exists(global.tileLayer)) {
layer_delete(global.tileLayer);
}
이 코드는 전역 변수에 저장된 레이어가 존재하면 해당 레이어를 삭제합니다.
예제 2: 레이어 이름으로 존재 확인
if (!layer_exists("BackgroundLayer")) {
global.backgroundLayer = layer_create(0);
}
이 코드는 "BackgroundLayer"라는 이름의 레이어가 존재하지 않으면 새로운 레이어를 생성합니다.
예제 3: 여러 레이어 존재 확인
if (!layer_exists(global.foregroundLayer) && !layer_exists(global.backgroundLayer)) {
global.foregroundLayer = layer_create(1);
global.backgroundLayer = layer_create(0);
}
이 코드는 전역 변수에 저장된 두 개의 레이어가 모두 존재하지 않으면 두 개의 새로운 레이어를 생성합니다.
예제 4: 레이어 존재 여부에 따른 게임 오브젝트 생성
if (!layer_exists("EnemyLayer")) {
global.enemyLayer = layer_create(2);
instance_create_layer(100, 100, global.enemyLayer, obj_enemy);
}
이 코드는 "EnemyLayer"가 존재하지 않으면 레이어를 생성하고, 그 레이어에 적 오브젝트를 생성합니다.