2009-04-06 8 views

Répondre

58

Je trouve que vous devez définir le

GraphicDevice.PreferredBackBufferHeight = height; 
GraphicDevice.PreferredBackBufferWidth = width; 

Lorsque vous faites cela dans le constructeur de la classe de jeu, il fonctionne, mais quand vous essayez faire à ce en dehors du constructeur vous devez également appeler

GraphicsDevice.ApplyChanges(); 

plus d'avoir plein écran (qui est pas vraiment fonctionne correctement pendant le débogage), vous pouvez utiliser

if (!GraphicsDevice.IsFullScreen) 
    GraphicsDevice.ToggleFullScreen(); 
+3

Cette réponse est un peu obsolète, donc je vous recommande de vérifier la réponse de Fuex ci-dessous. C'est la plupart du temps la même chose mais le code compilera sans aucune modification. –

+0

Cela fonctionne bien sur la dernière version. – krowe

-1

Cette solution fonctionne dans XNA 3.0. Il suffit de le mettre dans le constructeur de votre objet de jeu:

// Resize the screen to 1024 x 768. 
IntPtr ptr = this.Window.Handle; 
System.Windows.Forms.Form form = (System.Windows.Forms.Form)System.Windows.Forms.Control.FromHandle(ptr); 
form.Size = new System.Drawing.Size(1024, 768); 

graphics.PreferredBackBufferWidth = 1024; 
graphics.PreferredBackBufferHeight = 768; 

graphics.ApplyChanges(); 
69

Au XNA 4.0 cette propriété est maintenant trouvé sur le GraphicsDeviceManager. Ie. ce code irait dans le constructeur de votre jeu.

graphics = new GraphicsDeviceManager(this); 
graphics.IsFullScreen = false; 
graphics.PreferredBackBufferHeight = 340; 
graphics.PreferredBackBufferWidth = 480; 

// if changing GraphicsDeviceManager properties outside 
// your game constructor also call: 
// graphics.ApplyChanges(); 
+0

La réponse de Sjors Miltenburg ci-dessous est maintenant obsolète. Cette réponse de Fuex est appropriée pour XNA 4.0. – Xonatron

+0

Vous aurez toujours envie de faire graphics.ApplyChanges() après cela, cependant. –

Questions connexes