맵 항목 제거 (Remove Map Entry) 문서 해설
기능 설명: 이 액션을 사용하면 맵 구조에서 특정 키(및 그에 대응하는 값)를 제거할 수 있습니다. Create Map 액션을 통해 반환된 맵 인덱스를 담고 있는 변수를 제공하고, 제거할 "키"를 지정하면 그 키가 맵에서 제거됩니다. 이 액션은 아무 것도 반환하지 않으며, 특정 키의 값을 필요로 한다면 제거하기 전에 Get Map Value 액션을 사용해야 합니다.
액션 구문:
RemoveMapEntry(map, key);
인수 설명:
| 인수 | 설명 |
|---|---|
| Map | 값을 제거할 맵의 인덱스 (변수에 저장됨) |
| Key | 사용할 키 (실수 또는 문자열) |
예제:
다음은 특정 키의 값을 맵에서 가져와 0보다 작거나 같은지 확인한 후 해당 키를 제거하는 코드입니다.
var map_index = CreateMap();
map_index[? "example_key"] = -5; // 예제 키에 값 설정
// 값이 0 이하인지 확인
if (GetMapValue(map_index, "example_key") <= 0) {
RemoveMapEntry(map_index, "example_key"); // 키 제거
}
활용 및 응용 예제
- 사용자 세팅 관리: 게임에서 사용자 설정을 맵에 저장하고, 사용자가 특정 설정을 지우고 싶을 때 이 액션을 사용할 수 있습니다.
```gml var user_settings = CreateMap(); user_settings[? "volume"] = 50; // 볼륨 설정 user_settings[? "difficulty"] = "medium"; // 난이도 설정
// 사용자가 볼륨 설정을 지우고 싶을 때 RemoveMapEntry(user_settings, "volume"); ```
- 재고 관리: 게임에서 아이템 재고를 관리하는 맵에서 사용자가 아이템을 소진할 경우 해당 아이템을 제거할 수 있습니다.
```gml var inventory = CreateMap(); inventory[? "health_potion"] = 5; // 체력 포션 수량
// 체력 포션을 사용한 후 inventory[? "health_potion"] -= 5; // 모두 사용했을 경우
// 재고가 0이므로 포션 제거 if (GetMapValue(inventory, "health_potion") <= 0) { RemoveMapEntry(inventory, "health_potion"); } ```
- 게임 레벨 관리: 게임 레벨에서 도전 과제를 수행한 후 해당 과제를 제거하여 다시 시도할 수 없도록 설정할 수 있습니다.
```gml var challenges = CreateMap(); challenges[? "first_run"] = true; // 첫 번째 도전 과제
// 도전 과제를 완료한 경우 if (challenges[? "first_run"]) { RemoveMapEntry(challenges, "first_run"); // 도전 과제 제거 } ```
이와 같이 맵 항목 제거 액션은 다양한 상황에서 유용하게 활용될 수 있습니다. 필요한 인수를 올바르게 설정하고 적절한 시점에 호출하여 원하는 결과를 얻으세요.