[TIL] Text RPG 제작하기(7)

주소리·2026년 7월 23일

TIL

목록 보기
30/48

헤더 작업을 하며 추가로 알게된 점이 생겼습니다.

1. 헤더의 using namespace std;는 빼는 게 좋다

  • 헤더는 여러 .cpp에서 포함될 수 있어서 std 전체를 강제로 열어버리면 이름 충돌 가능성이 높아집니다. 따라서 직접 써주는 방향이 맞다고 합니다.
    2. 클래스 정의도 헤더 파일에 할 것
  • 헤더 파일에 클래스 정의를 두고 cpp에는 함수 정의를 두는 게 맞습니다.

파일을 분리하는 게 생각보다 오래 걸리는군요. 뭘 어디에 두어야 하는지 햇갈리는 것 같습니다.

일단 제가 정리한 방향은

  • Item.h에 Item구조체 정의
  • Inventory.h에서 Item.h를 include

하는 방향입니다.
지금 당장은 안 쓰지만 우선은 해둡시다.

추가로 알게 된 사항

  • 함수 이름은 동사형으로
  • 생성자는 딱 한번 호출되는 함수로 초기값을 세팅할 수 있음
    Inventory.h
    → “생성자가 있다”라고 선언

    Inventory.cpp
    → “처음 만들 때 포션을 5개로 세팅한다”라고 구현

여기서 고민되는 지점은
case와 인벤토리에서 아이템 선택하는 걸 어떻게 연결할 것인가인데요...


Inventory.cpp에서 이렇게 조건을 세우고


호출해주었습니다.

작동을 잘 하는지 보려는데

컴파일 오류가 발견됩니다.


메인 헤더에 인벤토리를 적지 않았군요
인벤토리 헤더도 include 해주고 선언도 추가해 줍시다.

빌드 성공이라는 문구는 왜이리 가슴 설렐까요.

콘솔에서도 문제가 없습니다!

아주 만족스럽습니다.
7할 정도는 AI의 힘을 빌렸을지언정 2할 정도는 제가 했다고 믿습니다.
나머지 1할은 기능 구현 가이드에게 드립니다.

그렇지만 자랑스러워하고 있으면 버그가 찾아오기 마련입니다.

HP 포션이 하나 남은 듯 한데, MP 포션이 0개라 사용이 불가하군요.


이 조건을 수정해야할 듯 합니다.
저는 HP 포션이 0이어도, MP 포션이 0이어도 포션 부족을 출력하길 바랐는데
다시 생각해보니 둘 중 하나만 0이면 무조건 포션 부족이 뜨는 조건이군요.

이렇게 바꿔주었습니다.


문제 해결!

profile
게임개발 및 아트, TA

0개의 댓글