1. 주제 및 목적
- 목적: RPG 게임에서 보스 몬스터에게 각 유저가 입힌 데미지를 기록하고, 이를 누적하여 출력하는 기능을 구현.
- 주요 개념:
- 맵(Map): 키(Key)와 값(Value)로 데이터를 관리하는 자료구조.
- Find 노드: 키를 기준으로 값을 검색하며, 없으면 기본값(예: 정수는 0)으로 초기화.
- Add 노드: 맵에 키와 값을 추가하거나 업데이트.
2. 맵 출력 기능
맵 생성
- 세팅:
- 맵의 키(Key) 타입은
String
, 값(Value) 타입은 Integer
.
- 테스트 데이터:
Dandi
: 100
Faker
: 200
Deft
: 300.
출력 로직
- Keys 노드 사용:
- 맵에서 모든 키(Key)를 추출하여 배열로 반환.
- For Each Loop:
- 반환된 키 배열을 순회하며 각 키에 대한 값을 검색.
- Find 노드:
- Format Text:
{Player}: {Damage}
형식으로 문자열 생성.
- Print Text:
주의점
- Keys와 Values를 동시에 사용할 수 없으며, 각각
Exec
핀 연결이 필요함.
3. 데미지 합산 기능
기능 흐름
-
입력 이벤트:
- 키보드
1
, 2
, 3
을 누르면 각각 다른 유저와 데미지 값이 설정.
1
: Dandi
+ 10.
2
: Faker
+ 20.
3
: Deft
+ 30.
-
Find 노드로 검색:
- 목적: 해당 유저가 맵에 이미 등록되어 있는지 확인.
- 특징: 유저가 없으면 기본값(0) 반환.
- Branch 노드 없이 값이 존재하지 않을 경우 자동 초기화.
-
Add 노드로 추가 및 업데이트:
-
즉시 출력:
Print Damage
커스텀 이벤트 호출.
- For Each Loop를 통해 현재 맵 데이터를 출력.
4. 주요 노드 설명
Find
- 기능: 키로 값을 검색.
- 장점:
- 값이 없을 경우 기본값 반환(정수는 0).
- 추가 조건문(Branch) 없이 처리 가능.
Add
- 기능: 맵에 새로운 키와 값을 추가하거나 기존 키의 값을 업데이트.
- 사용법:
- 첫 번째 입력: 키(Key).
- 두 번째 입력: 값(Value).
Format Text
- 기능: 입력값을 기반으로 텍스트 형식 생성.
- 사용 예시:
{Player}: {Damage}
.
5. 개선점 및 추가 학습
- 키와 값 추출 최적화:
- Keys 배열과 For Each Loop 조합 외에도 Map 자료구조 자체를 순회할 수 있는 메커니즘 학습 필요.
- 맵의 활용:
- 데미지 외에 다양한 게임 데이터(예: 경험치, 아이템 획득량)로 확장 가능.