众所周知,你应该在使用游戏对象的GraphicsDevice之前调用游戏的base.Initialize()吗?这就是我通过在线阅读大量教程而收集的内容。
显然,这不是游戏的GraphicDevice创建的地方,因为我能够在base.Initalize()之前使用它...
protected override void Initialize()
{
// TODO: Add your initialization logic here
// I use the game's GraphicsDevice in here to create a
// SpriteBatch, BasicEffect, ect. and it's VALID
Engine.Initialize();
base.Initialize();
}
初始化GraphicDevice的 Game.Run()会发生什么魔力?
答案 0 :(得分:2)
初始化为的XNA documentation specifies“在创建Game和GraphicsDevice之后但在LoadContent之前调用。”其他说明的教程不正确。
Game.Run创建一个图形设备,然后调用Initialize。
this.graphicsDeviceManager = this.Services.GetService(typeof(IGraphicsDeviceManager)) as IGraphicsDeviceManager;
if (this.graphicsDeviceManager != null)
{
this.graphicsDeviceManager.CreateDevice();
}
this.Initialize();
您可以使用Reflector自行调查XNA程序集的内部代码。