작업 디렉토리 (working_directory)
working_directory
는 게임 파일이 저장된 경로를 반환합니다. 대부분의 경우, 이는 게임 실행 파일의 경로인 program_directory
와 동일합니다. 그러나 게임 파일이 실행 파일과 다른 디렉토리에 있을 경우(예를 들어, game_change
를 사용하여 다른 작업 디렉토리를 설정하거나 명령줄을 통해 다른 위치에서 실행 파일을 실행하는 경우), 이 경로는 게임 파일이 있는 위치를 가리킵니다.
IDE를 통해 프로젝트를 테스트할 때도 이 디렉토리는 다를 수 있습니다. 이 경우 게임 파일과 실행 파일이 서로 다른 위치에 있습니다.
이 디렉토리를 사용하여 파일을 작성할 때, GameMaker는 파일 시스템 샌드박스가 작업 디렉토리에 쓰기를 허용하지 않는 경우 game_save_id
위치로 리디렉션합니다. 이는 기본 동작이며, 데스크톱 타겟의 게임 옵션에서 비활성화할 수 있습니다.
구문
working_directory
반환 값: String
예제
ini_open(working_directory + "temp_ini.ini");
이 코드는 게임의 작업 디렉토리에서 INI 파일을 열며, 파일이 존재하지 않을 경우 생성합니다. 이는 샌드박스 수준에 따라 저장 영역 또는 프로그램 디렉토리가 될 수 있습니다.
활용 예제
예제 번호 | 설명 |
---|---|
1 | 게임 설정 파일을 작업 디렉토리에 저장하기 |
2 | 사용자 데이터를 작업 디렉토리에서 불러오기 |
3 | 로그 파일을 작업 디렉토리에 기록하기 |
4 | 작업 디렉토리에서 이미지 파일을 로드하기 |
5 | 작업 디렉토리에 캐시 파일을 생성하기 |
예제 코드 스니펫
- 게임 설정 파일 저장하기
gml ini_open(working_directory + "settings.ini"); ini_write_real("Graphics", "ResolutionX", 1920); ini_write_real("Graphics", "ResolutionY", 1080); ini_close();
- 사용자 데이터 불러오기
gml ini_open(working_directory + "user_data.ini"); var player_name = ini_read_string("Player", "Name", "Unknown"); ini_close();
- 로그 파일 기록하기
gml var log_file = working_directory + "game_log.txt"; var file = file_text_open_write(log_file); file_text_write_string(file, "게임 시작됨\n"); file_text_close(file);
- 이미지 파일 로드하기
gml var image_path = working_directory + "sprites/player.png"; var player_sprite = sprite_add(image_path, 1, false, false, 0, 0);
- 캐시 파일 생성하기
gml var cache_file = working_directory + "cache.dat"; var file = file_binary_open(cache_file, file_binary_write); file_binary_write(file, some_data); file_binary_close(file);