Come trovare la dimensione della finestra in XNA


10

Volevo solo sapere se c'era un modo per scoprire le dimensioni della finestra in XNA. Non voglio impostarlo su una dimensione specifica; Vorrei sapere quali dimensioni attualmente vengono visualizzate automaticamente. C'è un modo per scoprire queste informazioni?

Mi rendo conto che probabilmente avrei dovuto scoprire queste informazioni (o impostarle manualmente) prima di lavorare sul gioco, ma sono un novizio e spero ora di lavorare nelle dimensioni in cui sono già stato investito. Grazie!

Risposte:


15

Ecco le tue opzioni:

Per ottenere la dimensione del back-buffer utilizzare:

GraphicsDevice.PresentationParameters.Bounds(per un rettangolo) oppure BackBufferWidthe BackBufferHeight.

Vuoi la dimensione del back-buffer se stai facendo cose come impostare finestre, scattare schermate, ecc.

Per ottenere il Viewport , utilizzare:

GraphicsDevice.Viewport.Bounds(per un rettangolo) oppure Widthe Height.

La dimensione del viewport è ciò che vuoi usare quando stai effettivamente eseguendo il rendering delle cose . Tutte le coordinate a cui si passa si SpriteBatchtrovano nello spazio client allineato ai pixel in termini di viewport: (0,0) per il pixel in alto a sinistra a (larghezza-1, altezza-1) per in basso a destra. Se si eseguono operazioni 3D, lo spazio di proiezione va da (-1, -1) nella parte inferiore sinistra della finestra a (1,1) nella parte superiore destra.

È possibile regolare le dimensioni e la posizione della finestra sullo schermo (per eseguire effetti come schermo diviso). Quindi, mentre è inizializzato alla dimensione del back-buffer, non è necessariamente sempre lo stesso.

Se stai eseguendo operazioni di layout dell'interfaccia, in particolare se eseguirai Xbox 360, tieni presente Viewport.TitleSafeArea. Questo ti dice quale regione è sicuramente visibile sugli schermi che potrebbero tagliare parte del bordo.

Se, per qualche motivo, stai effettivamente lavorando con la finestra di gioco stessa, usa Game.GameWindow.ClientBounds.


Molte grazie! Avrei dovuto specificare che si trattava di un gioco 2D ma che è stato carino da parte tua dare entrambe le risposte. Leggendo su Viewport ora.
Nick Van Hoogenstyn,

2

GraphicsDevice.Viewport.Bounds: restituisce Rectangle2D e presenta i parametri Larghezza e Altezza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.