카테고리 없음
8월 22일 TIL
skybluesky
2023. 8. 22. 19:28
public static void SaveData(PlayerInfo playerInfo)
{
string saveJson = JsonConvert.SerializeObject(playerInfo, Formatting.Indented);
File.WriteAllText("savefile.json", saveJson);
Console.WriteLine("저장완료");
}
public static PlayerInfo LoadData()
{
string loadJson = File.ReadAllText("savefile.json");
PlayerInfo loadPlayerInfo = JsonConvert.DeserializeObject<PlayerInfo>(loadJson);
return loadPlayerInfo;
}
데이터 세이브 & 로드 기능 구현에 성공했다
정상적으로 json파일이 생성되는것을 확인
현재 플레이어의 정보만 저장하지만 아이템 기능 구현 후 보유 아이템 등도 추가로 저장하도록 구현할 예정
인벤토리 창
현재 보유중인 아이템을 표시한다
1번을 누르면 장비를 장착하거나 해제할 수 있는 창으로 넘어간다
장착관리 창으로 넘어가면 각 아이템에 순서가 붙는다
public static void PrintEquipSetting()
{
i = 1;
foreach (Item item in items)
{
if (item.isBought)
{
if (item.isEquip)
Console.WriteLine($"{i++}.[E]{item.itemName}");
else
Console.WriteLine($"{i++}.{item.itemName}");
item.itemIndex = i;
Console.SetCursorPosition(2, Console.CursorTop + 1);
}
}
Console.SetCursorPosition(2, 32);
}
PrintEquipSetting()메서드를 호출하여 i와 같은 값을 item구조체 필드인 itemIndex에 저장한다
itemIndex가 고유값이 아닌 장비창에 표시된 순서대로 부여된다
번호를 입력하면 오른쪽에 아이템에 대한 상세 내용이 출력된다
이 상태에서 스페이스바 입력시 장착 또는 해제하고 다른 키가 입력된다면 선택이 취소된다
장비 장착 여부가 실시간으로 적용된다
아이템 설명 텍스트가 지정한 영역 밖으로 나오지 못하게 출력범위를 제한하는 기능 구현중인데 어려움을 겪는 중
내일 튜터님꼐 질문해봐야할듯