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