Як знайти розмір вікна в XNA


10

Мені просто хотілося знати, чи є спосіб дізнатися розмір вікна в XNA. Я не хочу встановлювати його на конкретний розмір; Мені хотілося б знати, які саме параметри в даний час відображаються автоматично. Чи є спосіб знайти цю інформацію?

Я усвідомлюю, що, мабуть, я повинен був знайти цю інформацію (або встановити її вручну) перед тим, як працювати над грою, але я новачок і зараз сподіваюся працювати в тих вимірах, в які я вже вклався. Дякую!

Відповіді:


15

Ось ваші варіанти:

Щоб отримати розмір зворотного буфера, використовуйте:

GraphicsDevice.PresentationParameters.Bounds(для прямокутника) або BackBufferWidthі BackBufferHeight.

Ви хочете розміру зворотного буфера, якщо ви робите такі речі, як установка вікон перегляду, зйомка екрана тощо.

Щоб отримати Viewport , використовуйте:

GraphicsDevice.Viewport.Bounds(для прямокутника) або Widthі Height.

Розмір вікна перегляду - це те, що ви хочете використовувати, коли ви фактично рендеруєте речі . Будь-які координати, до SpriteBatchяких ви переходите, знаходяться у клієнтському просторі, орієнтованому на пікселі, з точки зору області перегляду: (0,0) для верхнього лівого пікселя до (ширина-1, висота-1) для правого нижнього. Якщо ви робите 3D-матеріали, простір проекції переходить від (-1, -1) в нижній лівій частині вікна перегляду до (1,1) вгорі праворуч.

Ви можете налаштувати розмір і положення вікна перегляду на екрані (для таких ефектів, як розділений екран). Отже, хоча вона ініціалізується на розмір зворотного буфера, це не обов'язково завжди однаково.

Якщо ви робите компонування інтерфейсу, особливо якщо ви працюєте на Xbox 360, пам’ятайте про це Viewport.TitleSafeArea. Це говорить про те, який регіон точно видно на екранах, які можуть відрізати частину кордону.

Якщо ви з якоїсь причини фактично працюєте з самим вікном гри, використовуйте Game.GameWindow.ClientBounds.


Дуже дякую! Я повинен був уточнити, що це 2D гра, але це було приємно, щоб ви дали обидві відповіді. Читання в Viewports зараз.
Нік Ван Хугенстин

2

GraphicsDevice.Viewport.Bounds - це повертає Rectangle2D і має параметри Ширина та Висота.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.