room_assign 함수 설명
room_assign 함수는 하나의 방을 다른 방으로 복사하는 기능을 제공합니다. 이 과정에서 복사되는 방의 모든 인스턴스, 타일 등은 제거되고, 새로운 방의 내용으로 완전히 대체됩니다. 이 함수를 사용하기 위해서는 복사할 방(Asset Browser에서 정의된 방 또는 room_add 함수로 반환된 방)과 소스 방의 인덱스를 제공해야 합니다.
이 함수를 Asset Browser에서 생성된 방 자산에 호출하면 방의 내용이 영구적으로 변경됩니다. game_restart를 호출해도 방은 원래 상태로 돌아가지 않으며, 게임을 종료하고 다시 열어야만 방이 원래 상태로 돌아옵니다.
문법
room_assign(ind, source);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| ind | Room Asset | 복사할 방 |
| source | Room Asset | 복사할 소스 방 |
반환값
- N/A
활용 예제
아래는 room_assign 함수를 사용하는 예제 코드입니다.
global.rm = room_add(); // 새로운 방 추가
room_assign(global.rm, rm_base); // rm_base의 내용을 새로운 방에 복사
위 코드는 게임에 새로운 방을 추가하고, rm_base라는 인덱스를 가진 방의 내용을 그 방에 복사합니다.
추가 활용 예제
- 게임 레벨 초기화: 게임의 각 레벨을 초기화할 때 사용하여, 특정 레벨의 상태를 복사할 수 있습니다.
gml room_assign(current_room, level1_room); - 테스트 환경 설정: 개발 중 테스트 방을 설정할 때, 기존 방의 내용을 복사하여 실험할 수 있습니다.
gml room_assign(test_room, original_room); - 사용자 정의 방 생성: 플레이어가 선택한 방을 기반으로 새로운 방을 생성할 때 유용합니다.
gml room_assign(user_selected_room, template_room); - 게임 상태 복원: 특정 이벤트 후 방의 상태를 복원할 때 사용할 수 있습니다.
gml room_assign(current_room, saved_room); - 레벨 업그레이드: 플레이어가 레벨을 올릴 때 새로운 방으로 업그레이드할 수 있습니다.
gml room_assign(current_room, upgraded_room);
이와 같이 room_assign 함수는 다양한 상황에서 방을 복사하고 초기화하는 데 유용하게 활용될 수 있습니다.