0

我会开门见山的。目前有一个初学者级别的游戏即时编码问题。我有 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;
                }
            }
        }
4

1 回答 1

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;
}
于 2013-05-02T02:18:09.547 回答