2014-01-18 43 views
0

我为我的XNA游戏创建了一个IF语句,让我的角色离开他们的教室(屏幕)。有40个字符,以10行为单位。“Dest”表示字符的目的地。此代码是我更新的方法,我在我的初始化方法字符的列表:XNA如果语句和Random.Next

if (activeCharacter.DestX < 680) 
{ 
    activeCharacter.DestX = activeCharacter.DestX + 6; 
} 
else if (activeCharacter.DestY < 600)    //600 
{ 
    activeCharacter.DestY = activeCharacter.DestY + 6; 
} 
else if (activeCharacter.DestY == 600) 
{ 
    activeCharacter = classroom[(Random.Next(classroom.Count))]; 

    Console.WriteLine(activeCharacter.DestY); 

目的是有随机字符离开教室。当第一行中的一个角色离开时,另一个随机角色会在第一行之后直接离开,另一个角色将取决于它是否来自第一行。但是,如果除了第1个叶子以外的任何其他行中的角色,只会出现一个角色。

有人能告诉我停止这种情况发生吗?

谢谢!

+0

为了提高代码的可读性/可维护性,我想鼓励您阅读[此问题](https://stackoverflow.com/questions/47882/what-is-a-magic-number-and-为什么 - 它是坏的)。 – ThatOneGuy

回答

0

DestY由6递增,直到更大然后或等于600。然而最终else if仅检查等于600

改变最终检查到:

else if (activeCharacter.DestY >= 600) 

或者干脆:

else 

最有可能解决您的问题。

+0

非常感谢!是否还有一种方法可以绘制一个精灵并在其他情况下移除下一个精灵if(activeCharacter.DestY> = 600)会发生? – brade