如果我尝试进行循环,它将无法在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
有人有任何想法吗?
答案 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.
}