如何在SDL中更改窗口的分辨率?一切都太大了

时间:2015-12-29 22:43:50

标签: c++ sdl-2

我正在SDL制作一款游戏并对分辨率进行监督。一切(精灵)太大我想知道我是否可以提高分辨率所以一切都变小了而不改变每个精灵或修改曲面的创建方式?这是我正在处理的事情:

my game (png)

2 个答案:

答案 0 :(得分:1)

自SDL 2.0.0起,您可以使用<?php $database_name = "rams"; $mydb = new wpdb(DB_USER, DB_PASSWORD, $database_name, DB_HOST); $mydb -> show_errors(); //Populate languages $languages = $mydb -> get_results( 'SELECT * FROM language_skills' ); foreach ($languages as $language){ //do some echo of html } ?> to set a device independent resolution for rendering函数。

这样,您可以使用所需的目标分辨率设置渲染器并绘制所有内容,就像使用该分辨率一样。

我引用官方documentation

  

这很好,你可以改变逻辑渲染大小来实现各种效果,但主要用途是:我们现在可以使渲染大小与你的渲染大小一致,而不是试图使系统与你的渲染大小一起工作。系统。在我的1920x1200显示器上,这个应用程序认为它现在正在以640x480分辨率进行通话,但SDL正在使用GPU将其扩展为使用所有这些像素。请注意,640x480和1920x1200的宽高比不同:SDL也会照顾到这一点,尽可能地进行缩放,并将差异设置为letterbox。

请注意,您可以控制使用bunch of hints进行缩放的方式,例如SDL_RenderSetLogicalSize

答案 1 :(得分:0)

是的,你可以破解决议。如果您使用全屏模式,它会使您的精灵看起来更小,就像您调整显示器分辨率一样。当你处于窗口模式时,窗口会变大,但精灵看起来会一样。

你可以像@skypjack一样提到虚拟分辨率。一种方法是使用SDL_RenderSetLogicalSize(),另一种方法是使用渲染目标。

您也可以在线调整精灵大小(指定小于源的目标矩形),或者离线(使用批量图像处理工具,如ACDSee或Photoshop)。

最后,你还有更多空间可以填补。

我的建议是,当您使用图形时,请尝试记住目标分辨率,例如1280x720或800x600。然后围绕此分辨率设计所有资产。最后,您将拥有适合在一起的资产,而无需借助编程技巧。然后,如果您遇到具有不同分辨率的设备,则可以使用“虚拟分辨率”&#39;我上面提到要解决它。还有一些技巧,如安全框架或信箱也需要,但让我们把它作为预先提出的问题: - )。