Allegro 5 游戏:如何设置适合屏幕纵横比的分辨率?

ama*_*ion 5 resolution fullscreen widescreen allegro5

使用 Allegro 5,如何在全屏模式下初始化游戏,使其符合屏幕格式(宽屏 16:9 与普通 3:4)

al_create_display (w, h)
Run Code Online (Sandbox Code Playgroud)

让我们选择您想要的任何比例。例如,无论屏幕大小如何,您都可以设置 640x480。但在宽屏显示器上看起来会很奇怪。你怎么知道使用哪个比率?

小智 4

嗯,我也可以回答这个问题 - 使用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);
Run Code Online (Sandbox Code Playgroud)

现在,您可以在以 1366x768 为中心的 640x480 矩形中渲染所有内容,使其呈现像素完美,或者将图形放大 768/480 并在左侧和右侧保留两个黑条。如果您使用 OpenGL 进行渲染,则只需更改投影矩阵即可轻松完成这两个任务。