2017-03-09 4 views
0

player.playerHealth文字列の色を設定することについて簡単に質問しますが、どのように表示するかはわかりません。私はそれが約50の場合は緑色、下の場合は20以上の赤、下の場合は赤色になります。C#文字列の色を設定しようとしています

私は複数の異なるソリューションを試してみましたが、何も機能していなかったため、ここで取り上げました。

私もコードには新しく、これは私のクラスのちょっとしたゲームです。

ありがとうございます!あなたは行ごとに色を変更したい場合は

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

答えて

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

これはほとんど動作しますが、player.playerNameは同じ色になります。私はちょうどplayer.playerHealthを探しています – Josh

+0

さて、あなたは新しいコードをチェックすることができます。 Console.WriteLineの代わりにConsole.Writeを使用して、2つの色を区別しました。 @JoshuaBohning –

+0

これはこれまでずっとこのままで済んでおられたので感謝しました:) – Josh

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

関連する問題