콘솔 텍스트 색상을 변경하는 방법에 대해 질문해 보았다. 본문

공부공부공부

콘솔 텍스트 색상을 변경하는 방법에 대해 질문해 보았다.

부엥 2024. 10. 2. 11:49

 

Q.

걍 혼돈

 

텍스트 색상을 변경할 때,

현재의 방식이 너무 가독성이 떨어지는 수준이 아니라 그냥 제대로 읽을 수가 없습니다.

 

장면마다 클래스로 나뉘어 있지 않아 수정할 내용이 있을 때 읽으면서 찾아야 하는데

이렇게 하니 뭐가 어디에 있는지 찾을 때 더 힘들어집니다.

혹시 색을 변경하는 다른 방법이 있을까요..?

 

A.

더보기


namespace TextRPG_Team12
{
    internal static class UImanager
    {
        public static void ChangeConsoleColor(ConsoleColor color)
        {
            Console.ForegroundColor = color;
        } 

        public static void ReturnColor()
        {
            Console.ResetColor();
        }
    }
}

UiManager.cs 를 만들고 이것저것 추가해서 사용하면 된다고 하셨다.

 

 

            UImanager.ChangeConsoleColor(ConsoleColor.Green);

 

사용하면

 

+

더보기

 

미리 지정되어 있는 색상이 있다. 기본 색이라 다들 채도가 높다.

RGB값을 직접 지정해서 쓸 수도 있다고 하셨다.

 


 

Q2.

글씨 색상을 한 줄 안에서 여러개의 색상을 사용하여 바꾸고 있어서 매우 끔찍한 모양새가 되고 있는데

방법이 없을까요?

 

A2.

Console.Write를 사용하면 조금 나아질 (...거라고 하신 것 같습니다)

 

 


Console.Write로 바꿔봄

 

이전에 쓰던 방법은

\x1b[38;2;255;88;88m 를 붙여주는 거 였는데, 나는 >> 1. <<에만 색을 넣어주고 싶었기에

\x1b[38;2;255;88;88m1. 으로 써놓게되어 어디까지가 색상값이고 어디가 출력되는지를 알 수가 없음.

Console.WriteLine("\x1b[38;2;255;88;88m1. \u001b[0m전사  \u001b[38;2;93;215;166m2. \u001b[0m궁수  \u001b[38;2;133;223;255m3. \u001b[0m도적  \u001b[38;2;167;88;255m4. \u001b[0m마법사");

Console.Write로 한 것

어떤 글씨가 출력되고, 어떤 색인지 구분이 된다.

(세세한 색상값은 따로 추가하면 된다고 하셨다.)

 

다만 한줄이면 끝나던게 16줄이 되었다.

        Console.ForegroundColor = ConsoleColor.DarkRed;
        Console.Write("1. ");
        Console.ResetColor();
        Console.Write("전사  ");
        Console.ForegroundColor = ConsoleColor.DarkGreen;
        Console.Write("2. ");
        Console.ResetColor();
        Console.Write("궁수  ");
        Console.ForegroundColor = ConsoleColor.Cyan;
        Console.Write("3. ");
        Console.ResetColor();
        Console.Write("도적  ");
        Console.ForegroundColor= ConsoleColor.DarkMagenta;
        Console.Write("4. ");
        Console.ResetColor();
        Console.WriteLine("마법사");

그리고 사실 같은 방법으로

색상값 입력해주는걸 해도 되긴한다.

 

출력된 것 비교.

 

이 부분도 Console.Write로 색상값과 출력부분을 나눴더니 훨씬 읽기 편해졌다 야호 \^0^/

 


 

알려주신 방법을 조금 더 이리저리 사용해보고,

부분마다 적절하다 생각되는 방법을 사용해보기로 함. 

 

 

 

'공부공부공부' 카테고리의 다른 글

삐그덕거리는 나의 과제  (0) 2024.09.24
반복문 실습  (2) 2024.09.20
조건문 실습  (0) 2024.09.20
C# 문법 종합반 - 1주차 과제  (0) 2024.09.18