我会明白这一点。目前正在编码初学者级游戏。我有2个列表来存储"对象"在游戏中。一个是钻石"钻石"可移动的块将移动到"目标"。一旦所有钻石都在目标上,水平应该改变。我目前正在使用" GameStates"加载每个级别。以下是我的代码片段,我遇到了问题。目前发生的事情是游戏将允许我推动钻石"进入"目标",但是一旦我这样做,游戏状态就不会改变。不确定我错过了什么 - 任何帮助表示赞赏。谢谢你的时间!
void Level1Update(KeyboardState cKB, KeyboardState oKB)
{
for (int i = 2; i < diamondlist.Count; i++)
{
if ((Goallist[i].Position == diamondlist[i].Position))
{
CurrentGameState = GameState.Level2;
}
}
}
答案 0 :(得分:0)
如果我理解正确,只有当所有的钻石和目标都在同一个瓷砖上时,你才想将当前的游戏状态设置到下一个级别。以下代码确保了。
void Level1Update(KeyboardState cKB, KeyboardState oKB)
{
int i;
for (i = 0; i < diamondlist.Count; ++i)
{
if (Goallist[i].Position != diamondlist[i].Position)
break;
}
// When breaked off the loop, i is never equal to list count
if (i == diamondList.Count)
CurrentGameState = GameState.Level2;
}