C#尝试设置字符串的颜色

时间:2017-03-09 02:11:08

标签: c# string colors

关于设置player.playerHealth字符串颜色的快速问题,我无法显示我想要的方式。我希望它是绿色的,如果它大约50,黄色,如果它高于20和红色的任何下面。

我尝试了多种不同的解决方案,没有任何工作,所以我把它带到了这里。

我也是代码新手,这对我的班级来说只是一个小游戏。

提前致谢!

public static void redKeeperBattle()
    {

if (player.playerHealth > 50) {
                Console.ForegroundColor = ConsoleColor.Green;
            } else if (player.playerHealth > 20) {
                Console.ForegroundColor = ConsoleColor.Yellow;
            } else {
                Console.ForegroundColor = ConsoleColor.Red;
            }

            Console.Clear ();
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine ("--------------------------------------------------------------------------------");
            Console.WriteLine ("");
            Console.WriteLine ("THE RED KEEPER: {0} HP", boss.redKeeperHealth);
            Console.ResetColor ();
            Console.WriteLine ("");
            Console.WriteLine ("{0}: {1} HP", player.playerName, player.playerHealth);
            Console.WriteLine ("");
            Console.WriteLine ("");
            Console.WriteLine ("");
            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine ("What would you like to do?");
            Console.WriteLine ("1) Attack");
            Console.WriteLine ("2) Dodge");
            Console.ResetColor ();
            Console.ReadLine();
}

2 个答案:

答案 0 :(得分:0)

如果要更改每行的颜色,请在声明Console.WriteLine之前输入if-else语句:

        Console.Clear ();
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine ("--------------------------------------------------------------------------------");
        Console.WriteLine ("");
        Console.WriteLine ("THE RED KEEPER: {0} HP", boss.redKeeperHealth);
        Console.ResetColor ();
        Console.WriteLine ("");
        Console.Write("{0}: ", player.playerName);

//Put your condition here so that the color will reflect:
if (player.playerHealth > 50) {
            Console.ForegroundColor = ConsoleColor.Green;
        } else if (player.playerHealth > 20) {
            Console.ForegroundColor = ConsoleColor.Yellow;
        } else {
            Console.ForegroundColor = ConsoleColor.Red;
        }

 Console.Write ("{0} HP", player.playerHealth);

答案 1 :(得分:0)

您正在使用

行覆盖前景色
         Console.ForegroundColor = ConsoleColor.Red;

因此,将此条件剪切并粘贴到此行下方,

       public static void redKeeperBattle()
{


        Console.Clear ();
        Console.ForegroundColor = ConsoleColor.Red;

       // Write your condition here like this.
       //The last else condition is not needed as the default colour is mention as red by above line

        if (player.playerHealth > 50) {
            Console.ForegroundColor = ConsoleColor.Green;
        } else if (player.playerHealth > 20) {
            Console.ForegroundColor = ConsoleColor.Yellow;
        } 


        Console.WriteLine ("--------------------------------------------------------------------------------");
        Console.WriteLine ("");
        Console.WriteLine ("THE RED KEEPER: {0} HP", boss.redKeeperHealth);
        Console.ResetColor ();
        Console.WriteLine ("");
        Console.WriteLine ("{0}: {1} HP", player.playerName, player.playerHealth);
        Console.WriteLine ("");
        Console.WriteLine ("");
        Console.WriteLine ("");
        Console.ForegroundColor = ConsoleColor.Magenta;
        Console.WriteLine ("What would you like to do?");
        Console.WriteLine ("1) Attack");
        Console.WriteLine ("2) Dodge");
        Console.ResetColor ();
        Console.ReadLine();

}