c# - XNA:数组赋值 (System.NullRefferenceException)
c# - XNA: Array assignment (System.NullRefferenceException)
我想创建 class Tile 的实例,我打算用 for-Loop 来做。
为了包含 Tiles,我使用了一个数组,我在主游戏 Class :
中声明了它
Tile[] Tiles;
实例的创建遵循方法,因为需要加载必要的图形:
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
splashText = Content.Load<Texture2D>("SplashText");
splashRect = new Rectangle((int)center.X - splashText.Width / 2, (int)center.Y - splashText.Height / 2, splashText.Width, splashText.Height);
gras = Content.Load<Texture2D>("Gras");
border = Content.Load<Texture2D>("Border");
borderHighlight = Content.Load<Texture2D>("BorderHighlighted");
emerald = Content.Load<Texture2D>("Emerald");
// TODO: use this.Content to load your game content here
Tiles[0] = new Tile (new Vector2(920, 540), gras); //The Error refferes to this line
/*Tile tile0 = new Tile(new Vector2(920, 540), emerald);
Tile tile1 = new Tile(new Vector2(920, 476), gras);
Tile tile2 = new Tile(new Vector2(856, 508), gras);
Tile tile3 = new Tile(new Vector2(792, 540), gras);
Tile tile4 = new Tile(new Vector2(856, 572), gras);
Tile tile5 = new Tile(new Vector2(920, 604), gras);
Tile tile6 = new Tile(new Vector2(984, 572), gras);
Tile tile7 = new Tile(new Vector2(1048, 540), gras);
Tile tile8 = new Tile(new Vector2(984, 508), gras);
Tiles = new Tile[] { tile0, tile1, tile2, tile3, tile4, tile5, tile6, tile7, tile8 };*/
}
我不想在注释中使用代码,因为我不知道如何在 for 循环中命名实例。
如何以其他方式创建它们而不会出现错误?
感谢您的支持!
我想创建 class Tile 的实例,我打算用 for-Loop 来做。 为了包含 Tiles,我使用了一个数组,我在主游戏 Class :
中声明了它Tile[] Tiles;
实例的创建遵循方法,因为需要加载必要的图形:
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
splashText = Content.Load<Texture2D>("SplashText");
splashRect = new Rectangle((int)center.X - splashText.Width / 2, (int)center.Y - splashText.Height / 2, splashText.Width, splashText.Height);
gras = Content.Load<Texture2D>("Gras");
border = Content.Load<Texture2D>("Border");
borderHighlight = Content.Load<Texture2D>("BorderHighlighted");
emerald = Content.Load<Texture2D>("Emerald");
// TODO: use this.Content to load your game content here
Tiles[0] = new Tile (new Vector2(920, 540), gras); //The Error refferes to this line
/*Tile tile0 = new Tile(new Vector2(920, 540), emerald);
Tile tile1 = new Tile(new Vector2(920, 476), gras);
Tile tile2 = new Tile(new Vector2(856, 508), gras);
Tile tile3 = new Tile(new Vector2(792, 540), gras);
Tile tile4 = new Tile(new Vector2(856, 572), gras);
Tile tile5 = new Tile(new Vector2(920, 604), gras);
Tile tile6 = new Tile(new Vector2(984, 572), gras);
Tile tile7 = new Tile(new Vector2(1048, 540), gras);
Tile tile8 = new Tile(new Vector2(984, 508), gras);
Tiles = new Tile[] { tile0, tile1, tile2, tile3, tile4, tile5, tile6, tile7, tile8 };*/
}
我不想在注释中使用代码,因为我不知道如何在 for 循环中命名实例。
如何以其他方式创建它们而不会出现错误? 感谢您的支持!