맵 값 가져오기(Get Map Value)
이 문서는 맵 데이터 구조에서 주어진 키와 연결된 값을 가져오는 방법에 대해 설명합니다. 맵은 키-값 쌍으로 데이터를 저장하는 구조로, 이 액션을 사용하면 맵에서 특정 값을 쉽게 조회할 수 있습니다.
액션 설명
이 액션을 사용하기 위해서는 다음의 인자를 제공해야 합니다:
- Map: 값을 가져올 맵의 인덱스 (변수에 저장됩니다).
- Key: 가져올 값의 키 (실수 또는 문자열).
- Target: 반환된 맵 값을 저장할 대상 변수 (임시 지역 변수로 플래그를 설정할 수 있습니다).
만약 존재하지 않는 키를 제공하면 이 액션은 undefined 를 반환합니다. 이 상황을 확인하기 위해서는 If Undefined 액션을 사용할 수 있습니다.
액션 문법
value = GetMapValue(map, key);
인자 설명
| 인자 | 설명 |
|---|---|
| Map | 값을 가져올 맵의 인덱스 |
| Key | 가져올 값의 키 (실수 혹은 문자열) |
| Target | 반환된 맵 값을 저장할 대상 변수 (선택적) |
예제
아래의 예제 코드 블록은 인스턴스 위치에서 충돌을 확인하고, 충돌이 발견되면 "damage" 키를 사용하여 맵에서 값을 가져와 호출 인스턴스 변수 "hp"를 변경하는 코드입니다.
// 충돌 감지
if (instance_place(x, y, obj_enemy)) {
// "damage" 키로부터 값 가져오기
var damage = GetMapValue(myMap, "damage");
// hp 변경
hp -= damage;
}
다양한 활용 예제
- 설정 로드하기 게임 설정을 담고 있는 맵에서 사용자 설정을 로드할 때 사용할 수 있습니다.
gml var volume = GetMapValue(settingsMap, "volume"); - 아이템 정보 조회 아이템 맵에서 특정 아이템의 속성(예: 가격, 효과 등)을 가져올 수 있습니다.
gml var itemPrice = GetMapValue(itemMap, "sword"); - 점수 추적 플레이어 점수를 담고 있는 맵에서 특정 레벨의 점수를 조회할 때 사용할 수 있습니다.
gml var levelScore = GetMapValue(scoreMap, currentLevel);
맺음말
이 액션을 사용하면 간편하게 맵 데이터 구조에서 필요한 값을 가져올 수 있습니다. 다양한 상황에서 맵을 활용하여 코드를 간결하게 유지할 수 있으니 적극적으로 활용해 보세요.