application_surface
개요
application_surface
는 게임에서 사용되는 전역 변수로, 애플리케이션 표면에 접근할 수 있게 해줍니다. 이 표면은 항상 사용 가능하며, GameMaker에서 게임이 그려지는 곳입니다. 기본적으로 일반 Draw 이벤트(예: Draw Begin, Draw, Draw End)는 이 표면에 그려집니다. 반면, Pre/Post Draw 및 Draw GUI와 같은 다른 Draw 이벤트는 애플리케이션 표면에 그리지 않습니다.
문법
application_surface;
반환값
- Surface
예제
var _cam_width = 320;
var _cam_height = 180;
var _resolution_scale = 4;
surface_resize(application_surface, _cam_width * _resolution_scale, _cam_height * _resolution_scale);
위 코드는 게임 내 카메라의 크기를 정의합니다 (320 x 180) 및 해상도 배율 값(4배)을 설정합니다. 카메라 크기는 해상도 배율과 곱해져 애플리케이션 표면의 크기로 적용되며, 이는 게임의 해상도를 정의합니다.
활용 예제
예제 번호 | 설명 |
---|---|
1 | 게임의 해상도를 동적으로 조정하기 위해 application_surface 를 사용하여 화면 크기를 변경할 수 있습니다. |
2 | 다양한 화면 비율을 지원하기 위해 카메라 크기를 조정하고, 이를 application_surface 에 적용하여 게임의 그래픽을 최적화할 수 있습니다. |
3 | 게임의 UI 요소를 그릴 때, application_surface 를 사용하여 배경과 UI를 분리하여 더 깔끔한 렌더링을 할 수 있습니다. |
4 | 여러 해상도에서 테스트할 때, application_surface 를 통해 해상도를 쉽게 변경하여 다양한 환경에서의 게임 동작을 확인할 수 있습니다. |
추가 예제 코드 스니펫
// 해상도 변경 예제
var new_width = 640;
var new_height = 360;
surface_resize(application_surface, new_width, new_height);
// 카메라 비율 조정 예제
var aspect_ratio = 16 / 9;
var cam_height = _cam_width / aspect_ratio;
surface_resize(application_surface, _cam_width, cam_height);
// UI 요소 그리기 예제
draw_surface(application_surface, 0, 0);
draw_text(10, 10, "게임 시작!");
// 해상도 테스트 예제
if (device_mouse_check_button_pressed(mb_left)) {
var new_scale = (random(2) + 1);
surface_resize(application_surface, _cam_width * new_scale, _cam_height * new_scale);
}