我想用C#和XNA显示多个文本。情况就是这样。如果A
则显示AAAAA
;如果在' A'之后B
然后同时显示BBBB
和AAAA
这是我写的代码:
if (Score == A)
{
spriteBatch.DrawString(
Font,
"AAAAAAAAAAAAAAAAAA",
scorePos,
Color.White);
}
if (Score == B)
{
spriteBatch.DrawString(
Font,
"BBBBBBBBBBB",
scorePos2,
Color.White);
}
但是,如果我显示BBB
,则AAA
消失;我应该使用什么而不是我的If
声明?
答案 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