如何更改分辨率并将整个游戏扩展到新的分辨率?我希望我的游戏有一个基本的分辨率,当我改变它以扩展到新的分辨率时。我看到了一些类似的问题,但所有的答案都建议我应该改变表示参数。如果我这样做,我的屏幕分辨率会改变,但我的所有其他对象保持相同的大小,并在错误的位置绘制。
我使用LPD3DXSPRITE对象将纹理、一些DirectX文本和定义如下的顶点绘制到屏幕上:
#define D3DFVF_VERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
我试图将D3DXSPRITE_OBJECTSPACE放在sprite->Begin()中,并尝试使用投影、视图和世界矩阵,但没有成功。
有没有人能告诉我这种方法是否可行,我该怎么做?我还读到了另一种方法,它建议渲染到表面,然后拉伸表面,但我不知道如何实现。我是DirectX的初学者。我在谷歌上搜索了第二种方法,但我找不到解释它的人,我也不认为我能从精灵绘制到曲面。
编辑:
我设法使用CreateRenderTarget、SetRenderTarget和StretchRect方法做到了这一点,首先打印到一个表面,然后在后台缓冲区上拉伸它。
发布于 2013-03-21 00:57:45
我设法使用CreateRenderTarget、SetRenderTarget和StretchRect方法做到了这一点,首先打印到一个表面,然后在后台缓冲区上拉伸它。
发布于 2013-03-20 12:45:50
可以通过使用DIPs (独立于设备的像素或独立于设备的单位)来测量坐标而不是物理像素来实现此目的。您还必须将您的游戏标记为DPI感知,以便当您更改分辨率时,操作系统不会缩放您的UI。有关DPI的更多信息,请参阅this article。
https://stackoverflow.com/questions/15513086
复制相似问题