-
내일배움캠프 14일차 TIL - 콘솔 텍스트 알피지 만들기Misc/오늘 알아낸 것 2023. 8. 21. 21:30
오늘은 별로 한건 없고 모듈끼리 디커플링 작업이랑
씬 이동, UI 틀 안에 내용 찍기 정도만 해봤다
아스키 아트를 처음 넣어봤는데 그렇게 나쁘지않은것같다
class DataModule { public void SaveData<T>(string path, T jsonClass) where T : class { File.WriteAllText(path, JsonSerializer.Serialize(jsonClass)); } public string LoadData(string path) { if (File.Exists(path) == true) { return File.ReadAllText(path); } else { return null; } } public T LoadData<T>(string path) where T : new() { if (File.Exists(path) == true) { return JsonSerializer.Deserialize<T>(File.ReadAllText(path)); } else { return new T(); } } } class ResourceModule { Dictionary<string, string> ResourceBase = new Dictionary<string, string>(); public void LoadResource(string name, string element) { ResourceBase.Add(name, element); } public string GetResource(string name) { return ResourceBase.GetValueOrDefault(name); } }
모듈 클래스들은 최소 기능만 구현했다
public static Scene GetCurrentScene() { return Scene.CurrentScene; } public static Scene GetScene(int index) { return Scene.BuildScenes[index]; } public static char GetInput() { return Input.GetValidInputCmd(); }
모듈 클래스를 컨테이너 클래스에서 쓸 수 있도록 열어놓았다
public static void DisplayBottomText(string name, string text) { int pivotX = 2; int pivotY = Define.UI_BOTTOM_PIVOT + 1; Console.SetCursorPosition(pivotX, pivotY); Console.Write(name); Console.SetCursorPosition(pivotX+2, pivotY+1); Console.Write(text); }
UI 틀안에 내용을 찍는건 UI 틀 찍을때랑 비슷하게 했다 별로 어렵진않은데 귀찮다
내일은 SoundPlayer를 Queue로 넣어놓고 풀링해서 사운드 출력을 하고
인벤토리 및 기타 이벤트등을 완료하면 끝날것같다
'Misc > 오늘 알아낸 것' 카테고리의 다른 글
내일배움캠프 21일차 TIL - 팀으로 콘솔 텍스트 RPG 만들기 (0) 2023.08.28 내일배움캠프 15일차 TIL - 콘솔 텍스트 알피지 만들기 2 (0) 2023.08.22 내일배움캠프 13일차 TIL - 모듈화와 커플링 리마인드 (0) 2023.08.20 내일배움캠프 12일차 TIL - Console.SetCursorPosition으로 UI 찍어내기 (0) 2023.08.19 내일배움캠프 11일차 TIL - System.Media.SoundPlayer 클래스로 사운드 재생하기 (0) 2023.08.18