在为游戏增加速度之后,我感觉我的纹理在抽搐。我以为只是我的眼睛,直到最终在屏幕截图中捕获了它:
左边的是我的游戏中呈现的内容;右边的是粘贴的原始精灵。(这是Photoshop的屏幕截图,放大了6倍。)
请注意,边缘是混叠的-看起来几乎像是亚像素渲染。实际上,如果我没有强迫我的精灵(位置和速度为整数)使用整数值进行绘制,我会发誓MonoGame使用浮点值进行绘制。但事实并非如此。
这些事情看起来模糊的原因可能是什么?没有施加速度就不会发生这种情况。
确切地说,我的SpriteComponent
班级有一个Vector2 Position
领域。当我致电时Draw
,我实际上是使用new Vector2((int)Math.Round(this.Position.X), (int)Math.Round(this.Position.Y))
该职位。
我之前有个bug,即使静止的物体也会抖动-这是由于我使用了直线Position
向量,而不是将值四舍五入到ints
。如果我使用Floor
/ Ceiling
而不是圆形,则精灵会下沉/悬停(两种方式各有一个像素差异),但仍会模糊。