뮁
콘솔 텍스트 색상을 변경하는 방법에 대해 질문해 보았다. 본문
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마법사");
어떤 글씨가 출력되고, 어떤 색인지 구분이 된다.
(세세한 색상값은 따로 추가하면 된다고 하셨다.)
다만 한줄이면 끝나던게 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 |