텍스트 RPG 만들기 (1)
SetCursorPosition
를 통해 정렬시켜 주었다. public void ShowItemList(bool IsBuyMode)
{
int top = Console.CursorTop; //현재 커서의 y위치를 받아온다.
//아이템 목록 출력
for (int i = 0; i < Items.Length; i++)
{
//만약 아이템 구매로 진입했다면
if (IsBuyMode)
{
//숫자 표시
Console.SetCursorPosition(1, top);
Console.Write($"{i + 1} ");
}
//아직 인벤토리라면
else
{
//숫자 없음
Console.SetCursorPosition(4, top);
}
Console.Write(Items[i].Name);
Console.SetCursorPosition(23, top);
Console.Write("| 공격력 +{0}", Items[i].Power);
Console.SetCursorPosition(35, top);
Console.Write(" 방어력 +{0} ", Items[i].Defense);
Console.SetCursorPosition(46, top);
Console.Write(" | ");
Console.Write(Items[i].ItemInfo);
Console.SetCursorPosition(103, top);
Console.Write(" | ");
if (Items[i].State != ItemState.HaveNot)
Console.WriteLine("구매완료");
else
{
Console.Write(Items[i].Gold);
Console.SetCursorPosition(111, top);
Console.WriteLine("G");
}
if ((i + 1) % 3 == 0)
{
top++;
}
top++;
}
}
int x = Console.CursorLeft;
int y = Console.CursorTop;
item 배열 초기화 오류
Items = new Item[6];
으로 초기화 과정이 끝난 줄 알았는데, 사실은 배열 선언 후에 만들어진 6개의 item 객체들도 하나씩 초기화 과정을 거쳐주어야 했다.player의 hp값이 제대로 출력되지 않는 현상 발생
private타입의 hp 변수
와 public 타입의 Hp 프로퍼티
를 나눠주게 되었는데, 그 과정에서 이런 오류가 발생한 것 같음.private float hp;
public float Hp
{
get { return hp; }
set
{
if (value + hp > MaxHP)
hp = MaxHP;
}
}
인벤토리 목록에 있는 아이템을 장착하려는데 장착이 제대로 안되는 현상이 발생
items[3]
, items[4]
, items[5]
에 해당하는 아이템을 구매하고 인벤토리에 들어오면, 인벤토리에서는 내가 보유한 아이템 목록만 출력되므로 1번에 items[3]
, 2번에 items[4]
, 3번에 items[5]
가 출력됨.items[5]
가 선택되는 것이 아니라, 3번을 인덱스로 가지고 있는 items[3]
이 선택되고 있었던 것.