SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Универсальное разрешение экрана, и его настройка
В этой теме 10 ответов, 4 участника, последнее обновление MicroSDA 7 года/лет, 10 мес. назад.
-
АвторСообщения
-
Обычно, когда пользователь устанавливает на свой ПК новую игру, после первого запуска игра либо предлагает выбрать подходящее разрешение экрана, либо подстраивается автоматически.
К примеру: Создаём окно 800х600, но на более крупных разрешениях текстуры растягиваются. А в последнее время почти у всех широкоэкранные мониторы, и ноутбуки. Это получается, что под каждое разрешение нужно делать текстуру индивидуального разрешения?
Хочу знать, как реализуются настройки в играх, в первую очередь на SFML.
Вроде есть функция, снимающая разрешение экрана игрока.
Даже если и есть такая функция, при изменении разрешения, картинка попросту отображается некорректно.
Вложения:
You must be logged in to view attached files.Было 800х600, изменил на 1024х768.
А если картинкам давать размер что то типа window.getSize().x/30 и тд, но мне кажется должно быть решение получше
нашёл способ виндовса определять размер экрана.
int scrX = GetSystemMetrics(SM_CXSCREEN);
int scrY = GetSystemMetrics(SM_CYSCREEN);
RenderWindow window(VideoMode (scrX, scrY),”name”);Как сделать чтобы при изменении размеров окна качество картинки не потерялась ?
C++123#include<Windows.h>GetSystemMetrics(SM_CXSCREEN) //Разрешение экрана по XGetSystemMetrics(SM_CYSCREEN) //Разрешение экрана по YКогда ты изменяешь размер окна, это происходит не пропорционально. Поэтому изображение искажается.
if (event.type == sf::Event::Resized)
{
winX = window.getSize().x;
winY = window.getSize().y;if( winX < winY ) window.setSize().x = …;
if( winY < winX ) window.setSize().y = …;
}800×600 и 1024х768 итд, что то мне подсказывает что это всё пропорциональные разрешения , и увеличиваться должно пропорционально.
RenderWindow window(VideoMode::getDesktopMode(), “Пара ПАм”); // я на весь экран делаю так.
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.