我试图使用数组来制作一个太空入侵者游戏来存储入侵者,但是每次运行代码时它都会冻结,并且我的数组的错误大小错误。
错误:
未处理的类型' System.OutOfMemoryException'发生在mscorlib.dll
有人可以帮忙吗?这是我的代码:
class invaders
{
ingame game = new ingame();
PictureBox[] spaceinvaders = new PictureBox[100];
public void spawn(int level)
{
PictureBox invader = new PictureBox();
Bitmap img = (WindowsFormsApplication1.Properties.Resources.SpaceInvader);
for (int n = 1; n == 3 + level; n++)
{
for (int i = 12; i == 493; i = i + 37)
{
invader = new PictureBox();
invader.Size = new Size(12, 12);
invader.Image = img;
spaceinvaders[i] = invader;
spaceinvaders[i].Location = new Point(i, n);
}
}
game.Controls.AddRange(spaceinvaders);
}
}
答案 0 :(得分:1)
for
循环的条件错误。您需要使用<
代码而不是==
。将针对每次迭代检查中间表达式,并且仅当检查的输出为true
时才执行循环执行。
由于你要求内循环从12
转到493
,它就是这样做的。除了493
超过100
,因此数组在其边界之外被访问,因此你应该得到一个超出界限的#34;例外。
我无法重现您的错误。请修复您的代码,使其具有可重现性。