연습 문제 : 데미지 합산기

Jaemyeong Lee·2024년 12월 11일
0

입문자를 위한 UE5

목록 보기
28/60

1. 주제 및 목적

  • 목적: RPG 게임에서 보스 몬스터에게 각 유저가 입힌 데미지를 기록하고, 이를 누적하여 출력하는 기능을 구현.
  • 주요 개념:
    • 맵(Map): 키(Key)와 값(Value)로 데이터를 관리하는 자료구조.
    • Find 노드: 키를 기준으로 값을 검색하며, 없으면 기본값(예: 정수는 0)으로 초기화.
    • Add 노드: 맵에 키와 값을 추가하거나 업데이트.

2. 맵 출력 기능

맵 생성

  • 세팅:
    • 맵의 키(Key) 타입은 String, 값(Value) 타입은 Integer.
    • 테스트 데이터:
      • Dandi: 100
      • Faker: 200
      • Deft: 300.

출력 로직

  1. Keys 노드 사용:
    • 맵에서 모든 키(Key)를 추출하여 배열로 반환.
  2. For Each Loop:
    • 반환된 키 배열을 순회하며 각 키에 대한 값을 검색.
  3. Find 노드:
    • 현재 키를 이용해 맵에서 값을 검색.
  4. Format Text:
    • {Player}: {Damage} 형식으로 문자열 생성.
  5. Print Text:
    • 문자열을 출력하여 맵의 모든 데이터 확인.

주의점

  • Keys와 Values를 동시에 사용할 수 없으며, 각각 Exec 핀 연결이 필요함.

3. 데미지 합산 기능

기능 흐름

  1. 입력 이벤트:

    • 키보드 1, 2, 3을 누르면 각각 다른 유저와 데미지 값이 설정.
      • 1: Dandi + 10.
      • 2: Faker + 20.
      • 3: Deft + 30.
  2. Find 노드로 검색:

    • 목적: 해당 유저가 맵에 이미 등록되어 있는지 확인.
    • 특징: 유저가 없으면 기본값(0) 반환.
    • Branch 노드 없이 값이 존재하지 않을 경우 자동 초기화.
  3. Add 노드로 추가 및 업데이트:

    • 검색된 값에 새 데미지를 더해 맵에 저장.
  4. 즉시 출력:

    • Print Damage 커스텀 이벤트 호출.
    • For Each Loop를 통해 현재 맵 데이터를 출력.

4. 주요 노드 설명

Find

  • 기능: 키로 값을 검색.
  • 장점:
    • 값이 없을 경우 기본값 반환(정수는 0).
    • 추가 조건문(Branch) 없이 처리 가능.

Add

  • 기능: 맵에 새로운 키와 값을 추가하거나 기존 키의 값을 업데이트.
  • 사용법:
    • 첫 번째 입력: 키(Key).
    • 두 번째 입력: 값(Value).

Format Text

  • 기능: 입력값을 기반으로 텍스트 형식 생성.
  • 사용 예시: {Player}: {Damage}.

5. 개선점 및 추가 학습

  • 키와 값 추출 최적화:
    • Keys 배열과 For Each Loop 조합 외에도 Map 자료구조 자체를 순회할 수 있는 메커니즘 학습 필요.
  • 맵의 활용:
    • 데미지 외에 다양한 게임 데이터(예: 경험치, 아이템 획득량)로 확장 가능.

profile
李家네_공부방

0개의 댓글