포함된 파일 (Included Files)
GameMaker에서는 자산 브라우저에 추가한 자산에 국한되지 않고, 게임이 실행되는 동안 접근할 수 있는 파일을 프로젝트에 포함할 수 있습니다. 이러한 파일들은 게임 패키지에 포함되어 있으며, 원하는 대로 사용할 수 있습니다. 어떤 종류의 파일을 추가할지는 여러분의 필요에 따라 다르지만, 데이터 및 구성용 JSON 파일, 스프라이트 및 배경 이미지, 스프레드시트 등이 일반적으로 사용됩니다.
또한 다른 소프트웨어의 프로젝트 파일을 포함된 파일로 추가하고, 이를 어떤 플랫폼으로도 내보내지 않도록 설정할 수 있습니다. 이러한 프로젝트 파일은 포함된 파일 창에서 직접 열 수 있으며, 프로젝트를 내보낼 때 포함됩니다.
포함된 파일 추가하기
포함된 파일을 추가하는 가장 간단한 방법은 파일 탐색기에서 IDE로 드래그하는 것입니다. 드래그한 파일을 포함된 파일로 추가할 것인지 확인하는 메시지가 나타납니다. '예'를 누르면 포함된 파일 창이 열리며, 방금 추가한 파일이 표시됩니다.
포함된 파일 창 열기
자산 브라우저의 '추가' 메뉴를 열어 수동으로 포함된 파일 창을 열 수 있습니다.
메뉴 항목 | 설명 |
---|---|
포함된 파일 | 프로젝트에 존재하는 포함된 파일을 보여줍니다. |
파일 정리 | 파일의 실제 디렉토리를 편집하여 파일의 이름을 바꾸거나 재배치할 수 있습니다. |
탐색기에서 열기 | 프로젝트 디렉토리의 데이터 파일 폴더를 엽니다. |
파일을 추가하거나 제거할 수 있으며, 포함된 파일 인터페이스는 데이터 파일 폴더의 구조를 자동으로 반영합니다. 새로 고침 버튼을 클릭하여 디렉토리 내용을 즉시 새로 고칠 수 있습니다.
포함된 파일 속성
파일을 편집기에 추가한 후, 더블 클릭하여 포함된 파일 속성을 열 수 있습니다. 이 창에서는 파일의 이름, 디스크 크기 및 게임을 컴파일/테스트할 때 내보낼 플랫폼을 보여줍니다.
속성 항목 | 설명 |
---|---|
모든 선택 | 모든 항목을 선택합니다. |
없음 선택 | 모든 선택을 해제합니다. |
플랫폼 선택 | 파일을 내보낼 플랫폼을 체크하거나 체크 해제합니다. |
오른쪽 클릭 메뉴
파일을 오른쪽 클릭하면 컨텍스트 메뉴가 나타납니다.
메뉴 항목 | 설명 |
---|---|
모두 확장 | 모든 폴더를 확장하여 모든 파일을 표시합니다. |
모두 축소 | 모든 폴더를 축소하여 파일을 숨깁니다. |
모두 선택 | 모든 항목을 선택하고 현재 선택으로 만듭니다. |
속성 열기 | 파일의 속성을 검사기에서 엽니다. |
외부 편집기에서 열기 | 파일 확장자에 따라 외부 편집기에서 파일을 엽니다. |
주의 사항
사운드 파일을 포함할 때는 스트리밍 사운드 자산과 이름이 충돌하지 않도록 해야 합니다. 예를 들어, "main_music"이라는 사운드 자산이 있을 경우 "main_music.ogg"라는 포함된 파일은 프로젝트가 실행될 때 정의되지 않게 됩니다. 이는 스트리밍 파일이 메인 프로젝트 번들 외부에 저장되기 때문입니다.
또한 Windows에서는 DLL 파일, macOS에서는 DyLib 파일을 포함된 파일로 추가하고, external_define
을 사용하여 사용자 정의 함수를 생성할 수 있습니다. 이후 external_call
함수를 호출하여 사용할 수 있습니다. 이러한 방식으로 포함된 파일을 사용하여 추가 기능을 만드는 것은 확장 시스템과 호환되지 않으며, 확장에 추가된 파일에 대해 external_*
함수를 사용할 수 없습니다.
활용 예제
// JSON 파일을 포함된 파일로 읽기
var jsonData = json_parse(file_text_open_read("data.json"));
// 스프라이트를 포함된 파일로 추가하기
sprite_index = sprite_add("sprite.png", 1, false, false, 0, 0);
// 외부 DLL 파일 호출하기
external_define("my_library.dll", "my_function", dll_cdecl, ty_integer, 0);
var result = external_call("my_function", arg1, arg2);
// 배경 이미지 포함하기
background_index = background_add("background.png", false);
// 스프레드시트 파일 읽기
var spreadsheetData = spreadsheet_open("data.csv");
// 포함된 파일에서 텍스트 읽기
var file = file_text_open_read("textfile.txt");
var content = file_text_read_string(file);
file_text_close(file);
// 포함된 DLL 파일에서 함수 호출
external_define("my_functions.dll", "calculate", dll_cdecl, ty_real, 2, ty_real, ty_real);
var result = external_call("calculate", 5.0, 10.0);
이와 같은 방법으로 포함된 파일을 활용하여 게임의 기능을 확장할 수 있습니다.