객체 지속성 설정 (object_set_persistent)
이 문서는 특정 객체의 지속성을 설정하는 방법에 대해 설명합니다. 지속적인 객체는 방을 이동할 때 "유지"되며, 항상 그 속성을 유지합니다. 지속성을 설정하면, 지속성이 변경된 후 생성된 모든 객체 인스턴스는 지속적으로 생성됩니다. 반면, 이미 방에 있는 인스턴스는 영향을 받지 않을 수 있습니다.
주요 개념
- 지속성: 객체가 방을 넘어 유지되는 속성입니다.
- 인스턴스: 객체의 구체적인 구현체입니다.
- 레이어: 인스턴스가 생성될 때 할당되는 위치입니다.
- 깊이: 인스턴스의 레이어를 구분하는 값입니다.
함수 사용법
구문
object_set_persistent(index, pers);
매개변수 설명
| 매개변수 | 유형 | 설명 |
|---|---|---|
| index | Object Asset | 변경할 객체의 인덱스 |
| pers | Boolean | 객체를 지속적으로 설정할지 여부 (true 또는 false) |
반환값
- N/A
예제 코드
다음 코드는 현재 방이 "rm_final"인지 확인하고, 그렇다면 "obj_Player" 객체의 지속성을 false로 설정한 후 인스턴스를 생성합니다.
if (room == rm_final) {
object_set_persistent(obj_Player, false);
}
instance_create_layer(32, 32, "Instances", obj_Player);
레이어와 지속적인 인스턴스
- 인스턴스가 생성될 때 레이어가 지정되면, 다음 방에 동일한 이름의 레이어가 없으면 새로운 레이어가 생성됩니다.
- 만약 인스턴스가 생성될 때 이름이 지정된 레이어가 있다면, 다음 방에서도 동일한 이름의 레이어가 있으면 그 레이어에 할당됩니다.
- 인스턴스가 생성된 깊이와 동일한 깊이를 가진 레이어가 있는 방으로 이동하면, 해당 레이어에 할당되지 않고 새로운 레이어가 생성됩니다.
활용 및 응용 예제
- 게임 상태 유지: 게임의 특정 상태를 유지하기 위해 플레이어 객체의 지속성을 설정할 수 있습니다. 예를 들어, 플레이어의 점수나 레벨을 방을 이동해도 유지하고 싶을 때 유용합니다.
- 적 AI 유지: 적 캐릭터가 방을 이동할 때도 지속적으로 존재하도록 설정하여, 플레이어가 방을 이동할 때도 적의 행동을 유지할 수 있습니다.
- 아이템 관리: 플레이어가 획득한 아이템이 방을 넘어 지속되도록 설정하여, 게임 진행 중 아이템을 잃지 않도록 할 수 있습니다.
- UI 요소 유지: 게임의 UI 요소(예: 미니맵, 체력바 등)를 방을 이동할 때도 유지하도록 설정하여, 플레이어가 항상 필요한 정보를 볼 수 있도록 할 수 있습니다.
이러한 예제들은 게임 개발 시 객체의 지속성을 활용하는 다양한 방법을 보여줍니다.