본문 바로가기
  • 식초 한잔 할래..?
공부/게임 공부

Text RPG의 콘솔창 항상 중앙정렬 시키기

by 돼지피그푸곰 2025. 10. 16.

오늘은 어제에 이은 Text RPG게임 만들기입니다.

UIManager의 기본 틀을 만들어 놓고, 각 씬에 적용해보기를 우선 목표로 잡고 시작했습니다.

 

창을 움직여도 기존에 있던 코드가 계속 중앙정렬이 되게끔 하는 기능은. 어제와 마찬가지로 완벽히 구현은 못했습니다.

콘솔창의 한계인지..물론 제 한계겠지만, 일단은 Invenscene에 적용을 시켜보려고 했습니다.

 

string input = UIManager.ConsoleArray(() => {});

 

이거 안에 출력 코드들을 전부 넣고 리턴값을 줬습니다.

 

창이 변해도 중간 정렬을 했는데, 이 과정에서 입력을 한 번이라도 하면 창이 변해도 중앙정렬이 되지 않습니다. 이 부분에 대한건 고칠 수 없는 문제로. 어차피 창 조절한 다음에 입력하는거니까 괜찮다 치고 넘어가기로 했습니다.

 

위의 Invenscene은 추가로 장착을 하면 왼쪽에 [E] 토글 효과를 추가해서 만들었습니다.

추가로 팀원분 중 한 분이 미리 만들어둔 LogManager코드가 있어서

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void Show()
{
    Console.WriteLine("\n");
    UIManager.PrintCenter("[이벤트 로그]---------------");
 
    foreach (var line in logLines)
    {
        if (!string.IsNullOrEmpty(line))
            UIManager.PrintCenter(line);
    }
 
    UIManager.PrintCenter("----------------------------");
    Console.WriteLine("\n");
}
cs

 

 

경로와 중앙정렬만 약간 수정해서 적용시켰습니다. 그 외에도 이런 저런 개선사항을 추가하긴 했는데, 중요한건 UIManager이고, 어제 했던 것들이었기 때문에 큰 어려움이 없어서 다른 사람에게 받은 코드를 병합시키는 작업과 그 외에 플로우 차트 등을 만드는 일 정도만 했습니다.

 

 

 

 

이런 저런 일들을 하고 있었는데, 약간 붕 뜨고 있었으니까 팀원들의 조언을 받아 새로운 기능을 만들어 보기로 했습니다.

방향키로 메뉴 이동 + Enter 선택 코드를 만들어 보기로 했습니다.

 


> 전투 시작
  상태 보기
  인벤토리
  퀘스트
  종료

 

왼쪽의 화살을 키보드 위 아래로 움직인 후 누르면 안으로 들어가는 기능입니다.

숫자키를 안눌러도 되고, 화살표 키와 엔터키를 누르는거죠.

 

어떻게 해야 할지 감은 안오는데, UIManager에 있는 코드들을 좀 가져오면 어느 정도 될 것 같습니다.

 

이 부분에 대해서는 아직 동작 원리를 이해하고, 오류과정을 거치는 중이라 내일 즈음에 조금 더 자세히 설명할 수 있을 것 같아서 오늘은 여기까지..!