뷰 변수 설정 (Set View Variable)
개요
이 액션은 특정 내장 변수를 설정하여 게임의 뷰 포트가 카메라 뷰를 어떻게 표시하는지를 제어합니다. 먼저 수정할 뷰 포트 변수를 선택한 다음, 대상 뷰 포트(0~7)와 해당 변수의 새로운 값을 입력합니다.
뷰 포트는 룸 편집기에서 설정된 카메라 뷰를 그리는 화면 영역입니다. 아래 표에는 설정할 수 있는 다양한 변수의 요약이 포함되어 있습니다.
| 변수 | 설명 |
|---|---|
| Camera | 다른 카메라 뷰를 표시하도록 뷰 포트를 설정하기 위한 것입니다. 변경할 카메라의 고유 ID 값을 제공해야 합니다. |
| Visibility | 뷰 포트의 가시성을 전환하는 변수로, true 또는 false 값을 기대합니다. true로 설정하면 뷰 포트가 화면에 표시됩니다. |
| View Port X 좌표 | 게임 창 내에서의 뷰 포트의 X 위치입니다. 여러 뷰 포트가 활성화된 경우에만 필요합니다. |
| View Port Y 좌표 | 게임 창 내에서의 뷰 포트의 Y 위치입니다. 여러 뷰 포트가 활성화된 경우에만 필요합니다. |
| View Port Width | 뷰 포트의 너비(픽셀 단위)입니다. 게임 시작 후 이 값을 변경하더라도 게임 창 크기에는 영향을 주지 않습니다. |
| View Port Height | 뷰 포트의 높이(픽셀 단위)입니다. 이 값 또한 게임 시작 후 변경해도 게임 창 크기에는 영향을 주지 않습니다. |
| View Port Surface ID | 주어진 뷰 포트의 내용을 서피스에 그리도록 설정할 수 있습니다. |
동작 구문 및 인수:
인수 설명:
- Variable: 설정할 내장 뷰 변수
- View: 목표할 뷰 포트 (0 - 7)
- Value: 내장 변수의 새로운 값
예제:
아래의 코드 블록은 키 입력을 감지하고, 키가 눌리면 뷰 포트 [0]을 보이게 하고, 그렇지 않으면 보이지 않게 설정합니다.
if (keyboard_check(vk_anykey)) {
view_visible[0] = true; // 뷰 포트 [0]을 보이게 함
} else {
view_visible[0] = false; // 뷰 포트 [0]을 보이지 않게 함
}
다양한 활용 및 응용 예제:
1. 스플릿 스크린 구현
여러 플레이어를 위한 스플릿 스크린을 만들고 싶다면, 다음과 같이 여러 뷰 포트를 활성화할 수 있습니다.
// 플레이어 1의 뷰 포트 설정
view_visible[0] = true;
view_xview[0] = player1.x; // 플레이어 1의 X 위치
view_yview[0] = player1.y; // 플레이어 1의 Y 위치
view_wview[0] = room_width / 2; // 뷰 포트 너비
view_hview[0] = room_height; // 뷰 포트 높이
// 플레이어 2의 뷰 포트 설정
view_visible[1] = true;
view_xview[1] = player2.x; // 플레이어 2의 X 위치
view_yview[1] = player2.y; // 플레이어 2의 Y 위치
view_wview[1] = room_width / 2; // 뷰 포트 너비
view_hview[1] = room_height; // 뷰 포트 높이
2. 카메라의 위치 변경
게임 중 카메라의 위치를 실시간으로 변경하여 플레이어의 동작을 따라가고 싶다면, 다음과 같이 설정할 수 있습니다.
// 카메라의 위치를 플레이어의 위치에 맞추기
view_xview[0] = player.x - (view_wview[0] / 2); // 플레이어의 X 위치 중앙 맞춤
view_yview[0] = player.y - (view_hview[0] / 2); // 플레이어의 Y 위치 중앙 맞춤
3. 시간에 따라 가시성 변화
게임의 진행 상황에 따라 뷰 포트를 숨기거나 표시하고 싶으면 다음과 같이 사용할 수 있습니다.
if (game_time > 30) { // 30초가 지나면
view_visible[0] = false; // 뷰 포트 [0]을 숨김
} else {
view_visible[0] = true; // 뷰 포트 [0]을 보임
}
이렇게 다양한 방식으로 뷰 변수를 활용하여 게임의 화면을 제어할 수 있습니다.