C# 对象引用未设置为对象的实例(矩形数组)
我想用C#制作一个游戏,有关卡,每个关卡都有更多的对象 我有以下代码:C# 对象引用未设置为对象的实例(矩形数组),c#,nullreferenceexception,C#,Nullreferenceexception,我想用C#制作一个游戏,有关卡,每个关卡都有更多的对象 我有以下代码: Rectangle character, plus10; Rectangle[] eraser, compass; private void Initialize() { character = new Rectangle(_x, (int)_y, 40, 40); for (int i = 1; i <= objects; i++) { erase
Rectangle character, plus10;
Rectangle[] eraser, compass;
private void Initialize()
{
character = new Rectangle(_x, (int)_y, 40, 40);
for (int i = 1; i <= objects; i++)
{
eraser[i] = new Rectangle(_m[i], 400, 40, 40);//I get the error here
compass[i] = new Rectangle(_m[i], 400, 40, 40);//And here
}
plus10 = new Rectangle(_n, 400, 40, 40);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(new Bitmap(Happy_Math.Properties.Resources.background), 0, 0);
if (_plrPos == playerPosition.Up)
{
e.Graphics.DrawImage(new Bitmap(Happy_Math.Properties.Resources.jump), _x, _y);
}
else if (_plrPos == playerPosition.Down)
{
e.Graphics.DrawImage(new Bitmap(Happy_Math.Properties.Resources.slide), _x, _y);
}
else
{
if (runImg == 1)
{
e.Graphics.DrawImage(new Bitmap(Happy_Math.Properties.Resources.run1), _x, _y);
runImg = 2;
}
else if (runImg == 2)
{
e.Graphics.DrawImage(new Bitmap(Happy_Math.Properties.Resources.run2), _x, _y);
runImg = 1;
}
}
for (int i = 1; i <= objects; i++)
{
if (_obj[i] % 2 == 0)
{
e.Graphics.DrawImage(new Bitmap(Happy_Math.Properties.Resources.eraser), _m[i], 400);
}
else if (_obj[i] % 2 == 1)
{
e.Graphics.DrawImage(new Bitmap(Happy_Math.Properties.Resources.compass), _m[i], 400);
}
}
e.Graphics.DrawImage(new Bitmap(Happy_Math.Properties.Resources._10), _n, 400);
Initialize();
}
您能帮助我吗?您应该在定义数组时或在
initialize
方法中初始化数组:
Rectangle[] eraser = new Rectangle[objects.Length];
Rectangle[] compass = new Rectangle[objects.Length];
如果您不知道元素计数,请使用列表几乎不可能“猜测”解决方案,但这看起来很可疑:
for (int i = 1; i <= objects; i++)
for(int i=1;i)您需要先分配橡皮擦和指南针阵列,然后再将元素分配给它们。
for (int i = 1; i <= objects; i++)
for (int i = 0; i < objects; i++)