【发布时间】:2014-04-02 03:29:06
【问题描述】:
我正在做一个 Flappy Bird 克隆作为练习,因为我最近开始在 XNA 上编程,但我遇到了这个我无法理解的错误。
我在 Update() 函数中包含了以下代码,它的工作是在管道离开屏幕时删除管道,以免在创建更多管道时无限向左移动:
//Pipe despawner
foreach (var pipe in pipes)
{
if (pipe.position1.X <= -180)
{
pipes.Remove(pipe);
}
}
游戏运行良好,直到第一个管道离开屏幕并且调试器暂停并通过以下消息向这部分代码发出信号:
An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll
Additional information: Colección modificada; puede que no se ejecute la operación de enumeración.
很抱歉,第二部分是西班牙语,这是我系统的语言,但希望你知道如何解决这个问题。
考虑到游戏的简单性以及无限生成管道对性能的小影响,我相信我不能简单地包含这部分代码,但我不想尽快采用这种做法我开始学习游戏编程。
【问题讨论】: