ds_map_read 함수 설명
ds_map_read
함수는 이전에 ds_map_write()
함수로 생성된 문자열을 받아서, 미리 생성된 DS 맵에 읽어오는 기능을 합니다. 문자열을 읽어들이는 DS 맵에 이미 키/값 쌍이 존재할 경우, 이들은 먼저 지워진 후 저장된 맵이 재구성됩니다. 만약 지정된 DS 문자열이 GameMaker: Studio 1.2.x 런타임(또는 이전 버전)에서 작성된 경우, 선택적 인자인 "legacy"를 true
로 설정해야 합니다. 이는 문자열 형식이 그 이후로 변경되었기 때문입니다.
구문
ds_map_read(id, str, [legacy]);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
id | DS Map ID | 문자열을 읽어들일 데이터 구조의 핸들입니다. |
str | String | 읽어들일 문자열입니다. |
legacy | Boolean | 선택적 인자입니다. true 또는 false로 설정하거나 생략할 수 있습니다. |
반환값
N/A
예제 코드
inventory = ds_map_create();
ini_open("map.ini");
var t_string = ini_read_string("Saved", "0", "");
if (t_string != "") {
ds_map_read(inventory, t_string);
}
ini_close();
위 코드는 새로운 DS 맵을 생성하고 그 ID 인덱스를 "inventory" 변수에 저장합니다. 이후 ini 파일을 열고 해당 파일에서 문자열을 읽어 임시 변수 "t_string"에 저장합니다. 마지막으로 문자열이 유효한지(기본 ini 값인 ""이 아닌지) 확인한 후, 유효하다면 새로 생성된 DS 맵에 문자열을 읽어들이고 ini 파일을 다시 닫습니다.
활용 예제
예제 1: 게임 상태 저장 및 불러오기
// 게임 상태 저장
var game_state = ds_map_create();
ds_map_add(game_state, "level", current_level);
ds_map_add(game_state, "score", player_score);
var save_string = ds_map_write(game_state);
ini_open("save.ini");
ini_write_string("Game", "State", save_string);
ini_close();
ds_map_destroy(game_state);
예제 2: 플레이어 데이터 불러오기
// 플레이어 데이터 불러오기
var player_data = ds_map_create();
ini_open("player.ini");
var data_string = ini_read_string("Player", "Data", "");
if (data_string != "") {
ds_map_read(player_data, data_string);
}
ini_close();
// 플레이어 데이터 사용
var player_health = ds_map_find_value(player_data, "health");
var player_name = ds_map_find_value(player_data, "name");
예제 3: 설정 불러오기
// 게임 설정 불러오기
var settings_map = ds_map_create();
ini_open("settings.ini");
var settings_string = ini_read_string("Settings", "Config", "");
if (settings_string != "") {
ds_map_read(settings_map, settings_string);
}
ini_close();
// 설정 값 사용
var sound_volume = ds_map_find_value(settings_map, "volume");
var fullscreen_mode = ds_map_find_value(settings_map, "fullscreen");
이와 같은 방식으로 ds_map_read
함수를 활용하여 다양한 데이터 구조를 읽어올 수 있습니다.