ds_map_copy 함수 설명
ds_map_copy
함수는 하나의 DS 맵(소스)의 내용을 다른 DS 맵(대상)으로 복사하는 데 사용됩니다. 이때 대상 맵은 ds_map_create()
를 통해 미리 생성되어 있어야 합니다. 만약 대상 맵이 비어 있지 않다면, 이 함수는 복사하기 전에 먼저 대상을 비웁니다. 소스 DS 맵은 이 과정에서 변경되지 않습니다.
문법
ds_map_copy(destination, source);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
destination | DS Map | 복사할 맵의 핸들 |
source | DS Map | 복사할 원본 맵의 핸들 |
반환값
- N/A
예제
inventory_2 = ds_map_create();
ds_map_copy(inventory_2, inventory_1);
위 코드는 새로운 맵을 생성하고 이를 변수 "inventory_2"에 할당합니다. 그 후, 변수 "inventory_1"에 인덱스된 DS 맵의 내용을 이 새로운 맵으로 복사합니다.
활용 예제
- 게임 아이템 관리 ```gml // 아이템 목록을 복사하여 새로운 인벤토리 생성 player_inventory = ds_map_create(); ds_map_add(player_inventory, "sword", 1); ds_map_add(player_inventory, "shield", 1);
new_inventory = ds_map_create(); ds_map_copy(new_inventory, player_inventory); ```
- 상태 저장 및 복원 ```gml // 게임 상태를 저장하고 복원 game_state = ds_map_create(); ds_map_add(game_state, "level", 5); ds_map_add(game_state, "health", 100);
saved_state = ds_map_create(); ds_map_copy(saved_state, game_state); ```
- 적의 데이터 복사 ```gml // 적의 상태를 복사하여 새로운 적 생성 enemy_data = ds_map_create(); ds_map_add(enemy_data, "type", "goblin"); ds_map_add(enemy_data, "health", 30);
new_enemy_data = ds_map_create(); ds_map_copy(new_enemy_data, enemy_data); ```
- 레벨 데이터 관리 ```gml // 레벨 데이터를 복사하여 새로운 레벨 생성 level_data = ds_map_create(); ds_map_add(level_data, "enemies", 10); ds_map_add(level_data, "time_limit", 300);
new_level_data = ds_map_create(); ds_map_copy(new_level_data, level_data); ```
이와 같이 ds_map_copy
함수를 활용하여 다양한 데이터 구조를 쉽게 관리하고 복사할 수 있습니다.