游戏界面缩放后屏幕抖动的问题

 最近解决了一个游戏界面缩放后屏幕抖动的问题,拿来与大家分享一下。

我们公司的游戏在界面缩放到75%、50%、40%、25%后会出现明显的画面抖动,最后近过同事们的协助和努力之后,明白了DDraw缩放的规律,大致上的过程应该是: 以50%为例,对以图像的每列,应该是取一列,然后再舍去一列,类比到行上,实行规则也是如此,比如说有10列,DDraw把一张大图blt到一个较小的屏幕上会是取1、3、5、7、9,对应的偶数则舍去,如果我们把画布移动3个像素后,则会造成此次显示到屏幕上的像素会变成偶数列,从而造成屏幕的闪烁,对应的解决办法其实很简单,只要保证屏幕每次移动是2的倍数即可,当然,这种情况会造成人物有一定的异常,具体来讲就是就是假如人物每次移动奇数个像素,比如说是3个像素的话,为了保证屏幕的闪烁,我们就要人为的调整画布的位移,则此时人物的位置会有一个像素的偏移。如果缩放的比例选取的不好的话,这个偏移会更明显。

你可能感兴趣的:(Direct3D游戏,C/C++)