XNA:为什么不循环工作?

时间:2012-10-06 02:00:37

标签: xna character

如果我尝试进行循环,它将无法在XNA中运行。我想用它来进行角色选择(战斗机游戏),如果你按一个键(选择一个字符),它将添加到当前计数,然后如果该计数等于某个数字,一条消息将显示两个字符都已被选中。这是为了防止玩家在战斗场地中选择/加载超过一定数量的角色。在我的情况下,我只想要加载2个字符,而不是更多。

我的代码是:

int count = 1;

if (int i = 0; i < count; i++)
   count = count + i;

if (Keyboard.GetState().IsKeyDown(Keys.A))   // This will select Character A
   count += 1;
if (Keyboard.GetState().IsKeyDown(Keys.D))   // This will select Character B
   count += 1;

if (count == 2)   // This checks to see if the total count has reached 2
   // Message is displayed here

有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

这里有一个语法错误(似乎这个类似for循环的构造甚至是不必要的。它的目的是什么?if (int i = 0; i < count; i++)

你的代码是一个逻辑混乱所以我不会试图在我的答案中建立它。我不认为我理解一切,但这是一次尝试。

你需要一个状态,它只是指示是否已加载某些内容的变量。您可以简单地使用两个布尔变量,如下所示:

//at the Game class level:
bool char1Selected = false;
bool char2Selected = false;

//inside Update(GameTime)
if (Keyboard.GetState().IsKeyDown(Keys.A))
{
   char1Selected = true;
}

if (Keyboard.GetState().IsKeyDown(Keys.D))
{
   char2Selected = true;
}

if(char2Selected && char1Selected)
{
    //then both are selected. do something here according to your game's logic.
}