C#和XNA显示多个文本

时间:2014-09-26 15:38:57

标签: c# if-statement xna drawstring

我想用C#和XNA显示多个文本。情况就是这样。如果A则显示AAAAA;如果在' A'之后B然后同时显示BBBBAAAA 这是我写的代码:

if (Score == A)
{
    spriteBatch.DrawString(
        Font,                          
        "AAAAAAAAAAAAAAAAAA",  
        scorePos,                     
        Color.White);
}
 if (Score == B)
{
    spriteBatch.DrawString(
        Font,                         
        "BBBBBBBBBBB",  
        scorePos2,                     
        Color.White);
}

但是,如果我显示BBB,则AAA消失;我应该使用什么而不是我的If声明?

2 个答案:

答案 0 :(得分:0)

它仍然不是完全清楚你想要什么行为,但似乎你不明白else做了什么。

else(或else if)语句执行,如果其上方的if / else if语句不能执行。

使用您的代码,这意味着您只会执行“A”块“B”块,而不是两者。

如果您只想要“A”打印As和“B”打印Bs(彼此独立),请不要使用else

if (A)
{
}
if (B)
{
}

如果您只想打印B,那么请将它们嵌套:

if (A)
{
   if (B)
   {
   }
}

老实说,我怀疑你当前的代码中是否需要任何else结构。您还有检查Score变量上的相等性的其他问题。 Score永远不能同时等同于“A”和“B”,因此无论如何你都无法进入两个条件。您需要找到一个不同的条件来检查。

答案 1 :(得分:0)

感谢所有回复。当我找到答案时,我觉得我的问题很愚蠢。只需定义两个变量即可解决问题,修改过的coed就像

        if (Score == 1)
        {
            spriteBatch.DrawString(
                Font,                          // SpriteFont
                "AAAAAAA",  // Text
                scorePos,                      // Position
                Color.White);
         }//end of H2

        ////If O2 matched, score=2
        if (Score2 == 1)
        {
            spriteBatch.DrawString(
                Font,                          // SpriteFont
                "BBBBBBBB",  // Text
                scorePos3,                      // Position
                Color.White);
        }//end of O2