room_get_info 함수는 저장소에서 방에 대한 정보를 가져와 구조체로 반환하는 기능을 제공합니다. 선택적 인수를 통해 정보를 제외할 수 있습니다. 이 함수는 현재 활성 방(현재 방 또는 이미 방문한 지속 방)의 상태를 가져오는 데 사용할 수 없으며, 이 경우 방의 원래 상태를 반환합니다. 방은 이전에 자산 브라우저를 사용하여 생성되거나 게임 내에서 room_add를 사용하여 추가되어야 합니다.
반환되는 구조체 형식
반환되는 구조체의 형식은 다음과 같습니다:
room_info_struct = {
instances: [{/* Instance Info Struct */}, {/* Instance Info Struct */}],
layers: [{elements: [{/* Layer Element Info Struct */}, {type: layerelementtype_tilemap, tiles: [/* Tile Map Data */]}]}],
views: [{/* View Info Struct */}]
}
반환 구조체의 변수 설명
방 정보 구조체
| 변수 이름 |
데이터 타입 |
설명 |
| width |
Real |
방의 너비 |
| height |
Real |
방의 높이 |
| creationCode |
Script Function |
방의 생성 코드를 포함하는 스크립트 함수의 인덱스 |
| physicsWorld |
Boolean |
방에 물리 세계가 있는지 여부 |
| physicsGravityX |
Real |
물리 세계의 x축 중력 성분 |
| physicsGravityY |
Real |
물리 세계의 y축 중력 성분 |
| physicsPixToMeters |
Real |
물리 세계의 픽셀-미터 비율 |
| persistent |
Boolean |
방이 지속적인지 여부 |
| enableViews |
Boolean |
방에 뷰가 활성화되어 있는지 여부 |
| clearDisplayBuffer |
Boolean |
방을 그리기 전에 디스플레이 버퍼를 지울지 여부 |
| clearViewportBackground |
Boolean |
방을 그리기 전에 뷰포트의 배경을 지울지 여부 |
| colour |
Colour |
clearDisplayBuffer가 true로 설정될 때 사용되는 클리어 색상 |
| instances |
Array |
방에 배치된 모든 인스턴스의 기본 정보 배열 |
| layers |
Array |
깊이에 따라 정렬된 방의 모든 레이어 배열 |
| views |
Array |
뷰 인덱스에 따라 정렬된 모든 뷰 배열 |
인스턴스 정보 구조체
| 변수 이름 |
데이터 타입 |
설명 |
| id |
Object Instance |
인스턴스 ID |
| object_index |
String |
이 인스턴스의 객체 이름 |
| x |
Real |
인스턴스의 x 좌표 |
| y |
Real |
인스턴스의 y 좌표 |
| xscale |
Real |
인스턴스의 x 스케일 |
| yscale |
Real |
인스턴스의 y 스케일 |
| angle |
Real |
인스턴스의 회전 각도 |
| image_index |
Real |
인스턴스가 사용하는 이미지 인덱스 |
| image_speed |
Real |
인스턴스의 이미지 속도 |
| colour |
Colour |
인스턴스를 그릴 때 사용되는 블렌드 색상 |
| creation_code |
Script Function |
인스턴스의 생성 코드를 포함하는 스크립트 함수의 인덱스 |
| pre_creation_code |
Script Function |
인스턴스의 사전 생성 코드를 포함하는 스크립트 함수의 인덱스 |
레이어 정보 구조체
| 변수 이름 |
데이터 타입 |
설명 |
| id |
Real |
레이어 핸들 |
| name |
String |
레이어 이름 |
| visible |
Boolean |
레이어가 보이는지 여부 |
| depth |
Real |
레이어의 깊이 |
| xoffset |
Real |
레이어의 x 오프셋 |
| yoffset |
Real |
레이어의 y 오프셋 |
| hspeed |
Real |
레이어의 수평 속도 |
| vspeed |
Real |
레이어의 수직 속도 |
| effectEnabled |
Boolean |
레이어 필터/효과가 현재 활성화되어 있는지 여부 |
| effectToBeEnabled |
Boolean |
다음 프레임에서 레이어 필터/효과를 활성화/비활성화할지 여부 |
| effectFX |
Struct |
효과의 매개변수를 포함하는 구조체 (-1은 레이어 효과가 설정되지 않음을 의미) |
| elements |
Array |
레이어의 모든 요소를 나열하는 배열 |
뷰 정보 구조체
| 변수 이름 |
데이터 타입 |
설명 |
| visible |
Boolean |
뷰가 보이는지 여부 |
| cameraID |
Camera ID |
이 뷰에 할당된 카메라 |
| xview |
Real |
뷰 카메라의 x 좌표 |
| yview |
Real |
뷰 카메라의 y 좌표 |
| wview |
Real |
뷰 카메라의 너비 |
| hview |
Real |
뷰 카메라의 높이 |
| hspeed |
Real |
뷰의 수평 이동 속도 |
| vspeed |
Real |
뷰의 수직 이동 속도 |
| xport |
Real |
화면에서 뷰가 그려지는 x 위치 |
| yport |
Real |
화면에서 뷰가 그려지는 y 위치 |
| wport |
Real |
뷰포트의 너비 |
| hport |
Real |
뷰포트의 높이 |
| object |
Object Asset |
방에서 첫 번째 인스턴스가 따라야 할 객체 |
| hborder |
Real |
따라야 할 객체 인스턴스 주위의 수평 경계 |
| vborder |
Real |
따라야 할 객체 인스턴스 주위의 수직 경계 |
레이어 요소 정보 구조체
| 변수 이름 |
데이터 타입 |
설명 |
| id |
Real |
요소의 고유 ID |
| type |
Layer Element Type Constant |
요소의 유형 |
활용 예제
다음은 room_get_info 함수를 사용하는 몇 가지 예제입니다.
예제 1: 방 정보 가져오기
var _info = room_get_info(Room1);
예제 2: JSON 문자열로 변환하기
var _info_json = json_stringify(_info, true);
예제 3: 디버그 메시지 출력하기
show_debug_message(_info_json);
이 코드는 방 Room1의 정보를 가져와서 반환된 구조체를 JSON 문자열로 변환한 후, 디버그 메시지로 출력합니다. 모든 뷰, 인스턴스, 레이어, 레이어 요소 및 타일 맵 정보가 출력에 포함됩니다.