layer_sprite_get_id 함수 설명
layer_sprite_get_id 함수는 레이어의 스프라이트 요소에 대한 고유 ID 값을 가져오는 데 사용됩니다. 이 함수는 레이어 핸들(레이어를 생성할 때 layer_create()를 사용하거나 layer_get_id()와 함께 레이어 이름을 사용할 때 얻을 수 있음)과 Room Editor에서 정의된 스프라이트 요소의 이름을 인수로 받습니다. 함수는 해당 레이어에서 스프라이트 요소와 연결된 ID 값을 반환합니다.
이 함수는 IDE에서 자산 레이어에 추가된 스프라이트와 함께 사용하도록 설계되었습니다. 만약 layer_sprite_create() 함수를 사용하여 코드로 레이어에 스프라이트를 추가했다면, 이 함수에 전달할 이름이 없으므로 해당 함수에서 반환된 ID를 모든 후속 참조에 사용해야 합니다.
지정된 레이어가 존재하지 않거나 주어진 스프라이트 요소를 찾을 수 없는 경우, 함수는 -1을 반환합니다.
구문
layer_sprite_get_id(layer_id, sprite_element_name)
인수
| 인수 이름 | 타입 | 설명 |
|---|---|---|
| layer_id | String 또는 Layer | 타겟 레이어의 핸들 |
| sprite_element_name | String | Room Editor에서 정의된 레이어의 고유 스프라이트 요소 이름 |
반환값
- 스프라이트 요소 ID
예제
var lay_id = layer_get_id("Assets_trees");
var back_id = layer_sprite_get_id(lay_id, "graphic_254367CB");
layer_sprite_change(back_id, spr_Trees_Winter);
위의 코드는 "Assets_trees"라는 이름의 레이어 핸들을 가져오고, 이를 사용하여 해당 레이어에서 "graphic_254367CB" 스프라이트 요소의 ID를 검색합니다. 검색된 스프라이트 요소 ID는 요소의 스프라이트를 변경하는 데 사용됩니다.
활용 예제
예제 1: 스프라이트 변경
var layer_id = layer_get_id("Background");
var sprite_id = layer_sprite_get_id(layer_id, "background_sprite");
layer_sprite_change(sprite_id, spr_NewBackground);
예제 2: 스프라이트 존재 여부 확인
var layer_id = layer_get_id("Foreground");
var sprite_id = layer_sprite_get_id(layer_id, "foreground_sprite");
if (sprite_id != -1) {
// 스프라이트가 존재할 경우 작업 수행
}
예제 3: 여러 스프라이트 변경
var layer_id = layer_get_id("Assets");
var sprite_ids = [
layer_sprite_get_id(layer_id, "sprite1"),
layer_sprite_get_id(layer_id, "sprite2"),
layer_sprite_get_id(layer_id, "sprite3")
];
for (var i = 0; i < array_length(sprite_ids); i++) {
if (sprite_ids[i] != -1) {
layer_sprite_change(sprite_ids[i], spr_NewSprite);
}
}
이 예제들은 layer_sprite_get_id 함수를 활용하여 스프라이트를 변경하거나 존재 여부를 확인하는 방법을 보여줍니다.