Игра Allegro 5: Как установить разрешение, соответствующее соотношению сторон экрана?

StackOverflow https://stackoverflow.com/questions/1211916

Вопрос

Используя Allegro 5, как инициализировать игру в полноэкранном режиме, чтобы она соответствовала формату экрана (широкоэкранное 16: 9 против обычного 3: 4)

al_create_display (w, h)

Давайте выберем любое соотношение. Например, вы можете установить 640x480, независимо от размера экрана. Но это будет выглядеть странно на широкоэкранном мониторе. Как узнать, какое соотношение использовать?

Это было полезно?

Решение

Хм, я тоже могу ответить на этот вопрос - используйте al_get_monitor_info ( ) .

al_get_monitor_info(0, &info);
w = info.x2 - info.x1; /* Assume this is 1366 */
h = info.y2 - info.y1; /* Assume this is 768 */
al_create_display(w, h);

Теперь вы можете либо визуализировать все в прямоугольнике 640x480 с центром в пределах 1366x768, чтобы оно выглядело как пиксель, либо альтернативно масштабировать графику до 768/480 и оставить две черные полосы слева и справа. Если вы используете OpenGL для рендеринга, то и то, и другое очень просто сделать, просто изменив матрицу проекции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top