Среда, 18 Декабря 2024, 17:42

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
C# XNA fullscreen?
arthurfokДата: Суббота, 04 Августа 2012, 16:11 | Сообщение # 1
частый гость
Сейчас нет на сайте
Здравствуйте ( еще раз biggrin ) .
Скажите пожалуйста, как реализовать полноэкранный режим?
Пробовал так:
Code
   
graphics.PreferredBackBufferHeight=896;
graphics.PreferredBackBufferWidth=1300;
graphics.PreferredBackBufferFormat = SurfaceFormat.Bgr565;
graphics.IsFullScreen = true;

после этого, игра запускается в полноэкранном режиме, НО! т.к. я поставил ширину 1300, а у меня монитор 1280*1024 , то правая часть игры не видна (остается за пределами экрана) , и кроме этого, снизу остается белое пространство (белое ,потому что у меня: GraphicsDevice.Clear(Color.White);)

Так вот, как сделать так, чтоб не смотря на большие разрешения (1300*896), полноэкранный режим был нормальным ? (не знаю как еще сказать.)


Сообщение отредактировал arthurfok - Суббота, 04 Августа 2012, 16:12
Stalker_ShooterДата: Суббота, 04 Августа 2012, 20:22 | Сообщение # 2
3D XNA'шник
Сейчас нет на сайте
Quote (arthurfok)
Так вот, как сделать так, чтоб не смотря на большие разрешения (1300*896), полноэкранный режим был нормальным ? (не знаю как еще сказать.)


Как ты себе это представляешь? Игра растягивается на заданный формат, а твой экран ему не соответствует... Почему бы не сделать окно размером с экран пользователя?


*Не убегай от снайпера, умрешь уставшим.
*Мои статьи...


Сообщение отредактировал Stalker_Shooter - Суббота, 04 Августа 2012, 20:24
VolkodavADДата: Понедельник, 06 Августа 2012, 13:43 | Сообщение # 3
частый гость
Сейчас нет на сайте
Вдруг чем то поможет:
Quote
правая часть игры не видна (остается за пределами экрана) , и кроме этого, снизу остается белое пространство

Возможно данные проблемы из-за того, что фоновой рисунок не вписывается в 1300*896 пикселей (ширина больше, а высота меньше), а спрайт рисуется по размеру текстуры.

не совсем понял понятие правая часть игры? Поясни пожалуйста. И что значит нормальный полноэкраный рижим?
Ну а вообще, как сделать так, чтобы вид интерфейса был более менее нормальным вне зависемсти от разрешения, наверное придумывать велосипед и не стоит. Просто интерфейсу добавить некое "выравнивание".
- для фонового рисунка, могу предложить: ориентируемся на то,что высота экрана всегда меньше длины (для PC). Длина зависит от формата. Фоновая текстура берётся максимально широкая, чтобы угодить самым широкоформатным мониторам.
Тогда, нам надо подогнать высоту спрайта под высоту экрана, пропорционально этому изменить ширину спрайта и отодвинуть его, так чтобы центр текстуры остался в центре экрана.

пример:


для выравнивания элементов управления думаю немного другой принцип:
тут или просто располагать из "от края", располагая в точке Point(высота, ширина экрана - отступ). При этом размер менять и пересчитывать смысла особого нет. просто делать размер текстур максимально удобным при среднем разрешении. Ну или дополнительно растягивать до определённого растояния к краю экрана. Но тут расчётов больше... да и текстуры тогда должна в идеале просто приоткрываться, а не тянуться вместе со спрайтом.

А вообще могу и подумать, и подробно в статье всё выложить, если многим нужно.
P.S Сам с XNA знакомлюсь, C# знаю отлично ну или немного (всё относительно), идей много.


Думай, что говоришь. Говори, что думаешь.

Сообщение отредактировал VolkodavAD - Понедельник, 06 Августа 2012, 18:43
arthurfokДата: Четверг, 09 Августа 2012, 18:57 | Сообщение # 4
частый гость
Сейчас нет на сайте
VolkodavAD, ты написал много полезного , спасибо тебе за это.
а на счет статьи, думаю такая проблема возникает у многих, которые не знают как решить,и многим будет интересны они . так что, я за smile
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг