view_surface_id 설명서

view_surface_id 변수는 특정 뷰 포트의 내용을 서피스에 그리거나, 현재 서피스에 대한 참조를 가져오는 데 사용됩니다. 서피스 작업을 할 때는 화면의 전체 가시 영역을 서피스에 캡처해야 하는 경우가 많으며, 이 변수를 사용하여 뷰 포트에 할당합니다. 선택한 뷰에서 보여지는 모든 것이 이제 할당된 서피스에 그려지게 됩니다. 이 경우 뷰는 화면에 그려지지 않으므로, 다음 중 하나를 수행해야 합니다:

  • 새로운 뷰를 활성화하고 해당 뷰에서만 서피스를 그리기 (현재 그려지고 있는 뷰를 확인하려면 view_current 사용)
  • 인스턴스의 Draw GUI 또는 Post Draw 이벤트에서 서피스를 그리기 (이 이벤트들은 뷰와 독립적입니다)

이 변수를 읽으면 선택한 뷰에 할당된 서피스를 가져오거나, 서피스가 할당되지 않은 경우 -1을 반환합니다. 일반적으로 이 함수에 사용되는 서피스는 뷰 카메라의 크기와 같아야 합니다 (뷰 포트가 아님). 아래의 확장 예제는 뷰를 캡처하고 Draw GUI 이벤트에서 그리는 기본 설정을 보여줍니다. 서피스에 대한 더 많은 정보는 '서피스' 섹션을 참조하세요. 또한 view_set_surface_id() 함수를 사용하여 서피스를 뷰 포트에 설정할 수도 있습니다.

문법

view_surface_id[0...7]

반환값: 서피스 또는 -1 (서피스가 할당되지 않은 경우)

확장 예제

이 확장 예제에서는 서피스를 생성하고 이를 뷰 포트 [0]에 할당하여 해당 포트에 할당된 카메라 뷰를 캡처한 후, Draw GUI 이벤트에서 화면에 그립니다. 시작하기 위해 컨트롤러 인스턴스의 Create 이벤트에서 서피스 변수를 초기화해야 합니다:

surf = -1;

서피스 변수를 -1로 설정합니다. 모든 서피스 함수는 드로우 이벤트에서 사용해야 하므로 이상한 오류나 정의되지 않은 동작을 방지할 수 있습니다. 이제 메인 드로우 이벤트에서 다음과 같이 작성합니다:

if !surface_exists(surf) {
    surf = surface_create(camera_get_view_width(view_camera[0]), camera_get_view_height(view_camera[0]));
    view_surface_id[0] = surf;
}

서피스는 휘발성이므로 OS 메모리 관리 등으로 인해 언제든지 메모리에서 제거될 수 있습니다. 따라서 서피스가 존재하는지 확인하고, 존재하지 않으면 생성하여 뷰 0에 할당합니다. 이제 뷰 0에 나타나는 모든 것이 우리가 생성한 서피스에 그려집니다. 아무것도 하지 않으면 게임을 실행할 때 빈 화면이 나타납니다. 모든 그리기가 서피스에서 이루어지지만 서피스 자체는 어디에도 그려지지 않기 때문입니다. 따라서 이제 Draw GUI 이벤트에서 서피스를 화면에 그려야 합니다:

if surface_exists(surf) {
    draw_surface_stretched(surf, 0, 0, display_get_gui_width(), display_get_gui_height());
}

이 코드는 우리가 생성한 서피스를 GUI 레이어 전체에 맞게 늘려서 그립니다.

활용 예제

예제 번호 설명
1 서피스를 사용하여 게임의 특정 영역을 캡처하고, 이를 미니맵으로 표시하기
2 서피스를 사용하여 화면 전환 효과를 구현하기
3 서피스를 사용하여 UI 요소를 동적으로 생성하고 업데이트하기
4 서피스를 사용하여 게임의 특정 이벤트에 대한 스크린샷을 찍기
5 서피스를 사용하여 배경 애니메이션을 구현하기

이러한 활용 예제들은 view_surface_id와 서피스를 효과적으로 사용하는 방법을 보여줍니다.

Read more

기술 문서 해설 및 활용 예제

이 문서는 특정 기술에 대한 설명과 활용 방법을 다룹니다. 아래에서 내용을 쉽게 이해할 수 있도록 해설하고, 다양한 활용 및 응용 예제를 추가로 제공합니다. 기술 개요 이 기술은 게임 개발에서 자주 사용되는 기능으로, 특정 작업을 자동화하거나 효율적으로 처리하는 데 도움을 줍니다. 주로 게임의 로직을 구성하거나 사용자 인터페이스를 제어하는 데 사용됩니다. 주요

By 이재협/실장/시스템개발실/PHYSIA

키워드 설명서

이 문서는 특정 키워드에 대한 설명과 사용법을 제공합니다. 문법 (arguments); 인수 인수 이름 유형 설명 argument_name 인수에 대한 설명을 여기에 작성합니다. 반환값 (선택적 설명) 예제 code_example() { // 여기에 코드 예제를 설명합니다. } 코드 예제 설명 위의 코드 예제는 특정 기능을 수행하는 함수의 기본 구조를 보여줍니다. 이 함수는 인수를 받아들이고, 특정

By 이재협/실장/시스템개발실/PHYSIA

GameMaker 환경 설정 및 기능

이 문서에서는 GameMaker의 환경 설정 및 다양한 IDE 기능에 대한 정보를 제공합니다. 다음은 주요 항목들입니다: IDE 환경 설정 IDE(통합 개발 환경) 설정은 GameMaker의 전반적인 사용 경험을 조정하는 데 도움을 줍니다. 여기서 사용자는 개인의 필요에 맞게 다양한 옵션을 설정할 수 있습니다. 주요 설정 항목 설정 항목 설명 테마 IDE의 색상

By 이재협/실장/시스템개발실/PHYSIA

GameMaker IDE 설명서

GameMaker IDE는 게임을 만들고 소프트웨어에서 제공하는 모든 기능을 활용하는 주요 인터페이스입니다. 이 프로그램은 시작 화면부터 게임을 만들기 위해 사용하는 모든 편집기 창까지 포함되며, 매뉴얼과 다양한 튜토리얼에서 IDE라고 언급됩니다. IDE의 구성 요소 다음 섹션에서는 IDE에 대한 정보를 다룹니다: 1. 설정 및 기능 IDE의 설정 및 기능은 사용자가 게임 개발을 보다 효율적으로

By 이재협/실장/시스템개발실/PHYSIA