我目前正在为学校的评估重新制作游戏,如果我做错了什么,请原谅我。我试图制作一个 foreach 循环,以便将敌机的数量绘制到屏幕上。我在更新游戏时间中做了 1 个循环。错误是“NullReferenceException was Unhandled”,下面是“Object Reference not set to an instance of the object”。相同的代码在我们在课堂上制作的另一个“实践”游戏中工作,所以我不确定我做错了什么。
foreach (EnemyPlane ball in enemyplaneObjects)
{
ball.Update();
}
另一个在平局更新中。
foreach (EnemyPlane ball in enemyplaneObjects)
{
ball.Update();
}
另一件要考虑的事情是,两个“球”引用的值都是空的,并且没有在数组或 spritebatch 中声明。
这是精灵批处理。
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Texture2D truckTexture;
Vector2 truckPosition;
Texture2D planeTexture;
Vector2 planePosition;
Texture2D backgroundTexture;
Vector2 backgroundPosition;
Texture2D enemyplaneTexture;
Vector2 enemyplanePosition;
int enemyplaneCount = 5;
Texture2D personTexture;
Vector2 personPosition;
Parachute personObject;
Vector2 spriteVelocity = new Vector2(0.5f, 0f);
Random rand = new Random();
EnemyPlane[] enemyplaneObjects;
这就是数组。
enemyplaneObjects = new EnemyPlane[enemyplaneCount];
for (int index = 0 ; index < enemyplaneCount; index++)
{
byte r = (byte)rand.Next(64, 256); //Red Value
byte g = (byte)rand.Next(64, 256); //Green Value
byte b = (byte)rand.Next(64, 256); //Blue Value
byte a = (byte)rand.Next(64, 256); //Alpha Value
Color tempColor = new Color(r, g, b, a);
enemyplaneObjects[0] = new EnemyPlane(EnemyPlane.Texture, new Vector2(rand.Next(2, 100), rand.Next(2, 100)), new Vector2(rand.Next(-2, 20), rand.Next(-2, 20)), tempColor);
}
提前致谢。