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

C#尝试设置字符串的颜色,c#,string,colors,C#,String,Colors,只是一个关于设置播放器颜色的快速问题。playerHealth字符串,我无法让它显示我想要的颜色。我希望它是绿色的,如果它大约50,黄色,如果它高于20和红色的任何低于 我尝试了多种不同的解决方案,但都不起作用,所以我把它带到了这里 我也是新的代码,这只是一个小游戏,为我的类 提前谢谢 public static void redKeeperBattle() { if (player.playerHealth > 50) { Console.For

只是一个关于设置播放器颜色的快速问题。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();
}

如果要更改每行的颜色,请将If else语句放在Console声明之前。WriteLine:

        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);

您正在用线条覆盖前景色

         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();

}

这几乎奏效,但它使player.playerName的颜色相同。我只是在找player.playerHealthOkay,你可以查看新代码。我使用Console.Write而不是Console.WriteLine来分隔这两种颜色@乔舒亚伯宁:谢谢你,我一直都被困在这个问题上:)很高兴听到这个!您现在也可以接受它作为其他人参考的答案@JoshuaBohning