본문 바로가기
게임 개발 일지/내일배움캠프 TIL

TextRPG - 인벤토리 생성

by 빛하_ 2023. 11. 10.

 

 

 

C# 스크립트를 이용해 콘솔 rpg 게임 만들기.

 

필수 과제 3가지

1) 인벤토리에 아이템을 띄우기

2) 장착관리 누르면 장착관리 페이지로 넘어가기

3) 장착한 아이템 E 표시하고 캐릭터 스탯에 반영하기

 

2~3주차 강의자료를 보면서 어떤 코드를 활용할 수 있을 지 생각했다.

 

인벤토리 생성 

 

 foreach 문
int[] itemID = { 0, 1, 2, 3 };

foreach (int itemID in ItemInfo)
{
    Console.WriteLine(item);
}

 

Item 클래스에 아이템 정보 (ItemId, ItemName, ItemAtk, ItemDef, ItemComm)를 입력하고

foreach 문을 통해 ItemId 를 불러와 해당 번호에 맞는 아이템의 정보를 출력하기.

 

 

DisplayInventory(); 에 오류가 발생한 이유는?

 

DisplayGameIntro 메서드 내에 switch 문으로 1번은 MyInfo, 2번은 Inventory 로 나누었다.

GameIntro 화면에서 2를 누르면 Inventory화면으로 넘어가야 하는데, DisplayInventory 부분에 오류가 발생.

1을 눌렀을 때 MyInfo 가 정상적으로 뜨는 것으로 보아 switch 문 자체에 오류가 있는 것은 아님.

 

DisplayInventory 에 "매개체 없음" 이라는 오류가 발생했다.

DisplayMyInfo 와 DisplayInventory 모두 같은 Class 아래에 static void 로 작성했는데 왜 오류가 났을까..?

 

클래스와 메서드에 대한 이해가 부족해서 생긴 문제인 것 같다.

과제를 처음부터 다시 작성해야하기 때문에, 주말에 강의자료를 다시 보면서 정확히 개념을 짚고 가야겠다.

 

 

ItemInfo 에 Bool 값으로 장착 선택하기

 

item이 장착되었는지에 따라 아이템명 앞에 [E] 가 붙어야 한다.

장착했다면 True, 아니면 False 같은 형태로 bool값을 사용해 [E]를 붙일 수 있겠다는 생각.

class ItemInfo 에 itemEquip = False 로 설정해 아이템 자체에 true/false 스위치를 부여.

이후 IsItemEquipped 메서드를 만들 때 bool 값으로 장착 여부를 표시할 수 있다.

 

 

 

오늘의 회고

 

인벤토리를 구상하던 중 스크립트에 오류가 많아 수정이 쉽지 않았다.

인벤토리 만들기 전까지는 작동이 잘 돼서 오류의 원인을 찾고자 프로젝트를 새로 생성했는데

파일명이 충돌해서 그런지 원본도 초기화되어버렸다. 

안타깝지만 처음부터 다시 클래스와 변수를 정리하면서 짜야겠다..

시간이 많지 않은데, 여태 고민하면서 작성한 코드가 없어져서 엄청 꺾일 뻔했다....

완성본도 아니고, 선택 사항까지 추가한 상태가 아니라 다행(?) 이라고 생각한다..

 

변수 몇 개 안 넣어도 200줄이 금방 차는데, 몇 백줄짜리 코드는 어떻게 수정하시는 건지.. 

새삼 개발자 선생님들이 대단하다는 걸 느꼈다.

 

 

 

댓글