Вот ваши варианты:
Чтобы получить размер заднего буфера, используйте:
GraphicsDevice.PresentationParameters.Bounds
(для прямоугольника) или BackBufferWidth
и BackBufferHeight
.
Вы хотите размер заднего буфера, если вы делаете такие вещи, как настройка области просмотра, снимки экрана и т. Д.
Чтобы получить видовой экран , используйте:
GraphicsDevice.Viewport.Bounds
(для прямоугольника) или Width
и Height
.
Размер области просмотра - это то, что вы хотите использовать при рендеринге . Любые передаваемые вами координаты SpriteBatch
находятся в выровненном по пикселям клиентском пространстве с точки зрения области просмотра: (0,0) для верхнего левого пикселя и (ширина-1, высота-1) для нижнего правого. Если вы занимаетесь трехмерными вещами, пространство проекции изменяется от (-1, -1) в нижнем левом углу окна просмотра до (1,1) в верхнем правом углу.
Вы можете настроить размер и положение области просмотра на экране (для создания таких эффектов, как разделение экрана). Таким образом, хотя он инициализируется размером заднего буфера, он не обязательно всегда один и тот же.
Если вы занимаетесь разметкой интерфейса, особенно если вы будете работать на Xbox 360, будьте внимательны Viewport.TitleSafeArea
. Это говорит вам, какой регион определенно виден на экранах, которые могут отрезать некоторые границы.
Если по какой-то причине вы работаете с самим игровым окном, используйте Game.GameWindow.ClientBounds
.
GraphicsDevice.Viewport.Bounds - возвращает Rectangle2D и имеет параметры Width и Height.
источник