2010-10-26 3 views
2

Donc, il est bien connu que vous êtes censé appeler base.Initialize() du jeu avant d'utiliser le droit GraphicsDevice de l'objet de jeu? C'est ce que j'ai appris en lisant de nombreux tutoriels en ligne.XNA - Config d'initialisation de GraphicsDevice

Apparemment, ce n'est pas où le GraphicDevice de jeu est créé parce que je suis capable de l'utiliser avant base.Initalize() comme celui-ci ...

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(); 
} 

Quelle magie se passe dans Game.Run() cela initialiserait le GraphicDevice?

Répondre

2

Le XNA documentation specifies qui initialise est "Appelé après le jeu et GraphicsDevice sont créés, mais avant LoadContent." Les didacticiels qui indiquent le contraire sont incorrects. Game.Run crée un périphérique graphique, puis appelle Initialize.

this.graphicsDeviceManager = this.Services.GetService(typeof(IGraphicsDeviceManager)) as IGraphicsDeviceManager; 
if (this.graphicsDeviceManager != null) 
{ 
    this.graphicsDeviceManager.CreateDevice(); 
} 
this.Initialize(); 

Vous pouvez utiliser Reflector pour enquêter sur le code interne des assemblées XNA vous-même.