XNA'da pencere boyutu nasıl bulunur


10

Sadece XNA'da pencerenin boyutunu bulmanın bir yolu olup olmadığını bilmek istedim. Belirli bir boyuta ayarlamak istemiyorum; Şu anda hangi boyutları otomatik olarak görüntülediğini bilmek istiyorum. Bu bilgiyi bulmanın bir yolu var mı?

Oyunda çalışmaya başlamadan önce muhtemelen bu bilgileri bulmam (ya da kendim manuel olarak ayarlamam) gerektiğini fark ettim, ama acemi oldum ve şimdi zaten yatırım yaptığım boyutlar içinde çalışmayı umuyorum. Teşekkürler!

Yanıtlar:


15

Seçenekleriniz şunlardır:

Arka tampon boyutunu almak için şunu kullanın:

GraphicsDevice.PresentationParameters.Bounds(dikdörtgen için) veya BackBufferWidthve BackBufferHeight.

Görüntü alanı ayarlama, ekran görüntüsü alma gibi şeyler yapıyorsanız arka arabellek boyutunu istiyorsunuz.

Viewport'u almak için şunu kullanın:

GraphicsDevice.Viewport.Bounds(dikdörtgen için) veya Widthve Height.

Görünümün boyutu, gerçekte bir şeyler oluştururken kullanmak istediğiniz boyuttur . Geçtiğiniz koordinatlar SpriteBatchgörünüm açısından pikselle hizalanmış istemci alanındadır: sol üst piksel için (0,0) sağ alt için (genişlik-1, yükseklik-1). 3D şeyler yapıyorsanız, yansıtma alanı görünümün sol alt kısmındaki (-1, -1) 'den sağ üstteki (1,1)' e gider.

Ekrandaki görünüm penceresinin boyutunu ve konumunu ayarlayabilirsiniz (bölünmüş ekran gibi efektler yapmak için). Bu nedenle, arka tamponun boyutuna başlatılırken, mutlaka her zaman aynı değildir.

Arayüz düzenleri yapıyorsanız, özellikle Xbox 360 üzerinde çalışacaksanız, unutmayın Viewport.TitleSafeArea. Bu, ekranın hangi bölgelerinin kesinlikle görülebileceğini gösterir ve bazı kenarlıkları kesebilir.

Herhangi bir nedenle, aslında oyun penceresinin kendisiyle çalışıyorsanız, kullanın Game.GameWindow.ClientBounds.


Çok teşekkürler! Bunun bir 2D oyun olduğunu belirtmeliydim ama her iki yanıtı da vermek güzeldi. Şimdi Viewports'ta okuma.
Nick Van Hoogenstyn

2

GraphicsDevice.Viewport.Bounds - bu Rectangle2D döndürür ve Genişlik ve Yükseklik parametrelerine sahiptir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.