我在一个非常基本的游戏中使用c ++和SDL2。因为我使用非常小的图像(最大64x64),所以对我来说像素精确是很重要的。但当我尝试旋转例如如图所示,10x10图像乘以90°的倍数,如下所示:
我猜这种情况正在发生,因为中心被选为像素(5,5)
,它不是中心,但实际上有点偏向右下角。实际中心点应该是(4,4)
和(5,5)
之间的线,但SDL在渲染时不允许浮点值。即使10x10图像完全可旋转(在例如Gimp中工作),SDL似乎也不考虑纹理的均匀尺寸。
那么有没有办法在SDL中正确旋转图像,或者我必须手动检查角度,如果它是90°的倍数,则在旋转后将其自身移回?对于不是90°倍数的角度,我不在乎,因为在查看单个像素时图像将非常失真,并且您不会轻易识别1像素的移位。