DS 맵에 서브 맵 추가하기
이 문서에서는 DS 맵에 서브 맵을 추가하는 방법에 대해 설명합니다. 이 기능은 JSON 호환 맵을 생성하는 데 사용되며, json_encode
와 함께 사용해야 합니다. 서브 맵을 추가한 부모 맵이 파괴되면, 포함된 서브 맵도 함께 파괴되어 메모리가 해제됩니다. 부모 맵에서 ds_map_clear
를 호출하면 플래그가 설정된 모든 맵도 파괴되고 정리됩니다.
함수 구문
ds_map_add_map(id, key, value)
인자 설명
인자 | 타입 | 설명 |
---|---|---|
id | DS Map | 사용할 맵의 핸들 |
key | String | 추가할 맵의 키 |
value | DS Map | 추가할 맵의 핸들 |
예제 코드
다음은 DS 맵에 서브 맵을 추가하는 예제입니다.
var j_map = ds_map_create();
var j_list = ds_list_create();
var sub_map = ds_map_create();
ds_map_add_list(sub_map, "list", j_list);
ds_map_add(sub_map, "array", j_array);
ds_map_add_map(j_map, "map", sub_map);
var j = json_encode(j_map);
ds_map_destroy(j_map);
위 코드는 두 개의 DS 맵을 생성하고, 하나에는 리스트와 배열을 추가한 후, 이를 두 번째 맵에 추가하여 JSON 문자열로 인코딩합니다. 마지막으로 맵을 파괴하여 메모리에서 제거합니다.
활용 예제
예제 1: 사용자 정보 저장
var user_map = ds_map_create();
ds_map_add(user_map, "username", "player1");
ds_map_add(user_map, "score", 100);
var settings_map = ds_map_create();
ds_map_add(settings_map, "volume", 80);
ds_map_add(settings_map, "resolution", "1920x1080");
ds_map_add_map(user_map, "settings", settings_map);
예제 2: 게임 상태 저장
var game_state = ds_map_create();
ds_map_add(game_state, "level", 5);
ds_map_add(game_state, "lives", 3);
var inventory_map = ds_map_create();
ds_map_add(inventory_map, "item1", "sword");
ds_map_add(inventory_map, "item2", "shield");
ds_map_add_map(game_state, "inventory", inventory_map);
예제 3: 다중 플레이어 데이터 관리
var player_map = ds_map_create();
ds_map_add(player_map, "player_id", 1);
ds_map_add(player_map, "name", "Alice");
var stats_map = ds_map_create();
ds_map_add(stats_map, "kills", 10);
ds_map_add(stats_map, "deaths", 2);
ds_map_add_map(player_map, "stats", stats_map);
이러한 예제들은 DS 맵을 활용하여 다양한 데이터를 구조적으로 저장하고 관리하는 방법을 보여줍니다.