2012-10-06 43 views
0

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

我的代码是这样的:

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

当然这个我是否C#?即使编译,if(int i = 0; i

回答

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. 
}