我正在开始学习 C# 和 XNA,我想显示一个动画 Sprite (由我的键盘移动)。
我有这个 Sprite 文件:
为了仅显示我需要的部分,我使用以下代码:
Rectangle cuttedSprite = new Rectangle(
this.W * (int)this.mCurSprite.X,
this.H * (int)this.mCurSprite.Y,
this.W,
this.H
);
spriteBatch.Draw(this.mSpriteTexture, this.mPosition, cuttedSprite, Color.White);
但我的问题是移动后渲染的图像模糊:
我试图通过更改 SamplerStates
来解决这个问题,但没有任何改变。有没有人有想法帮助我?
最佳答案
将 Sprite 的位置四舍五入到最接近的整数。
如果 Sprite 的目标矩形偏移小于一个像素,像素着色器中的采样器将通过在相邻像素之间进行插值来计算颜色。
另一个选项是更改 filter method采样器的最近邻插值。您可以通过在调用 SpriteBatch.Begin
时指定 SamplerState.PointWrap
或 SamplerState.PointClamp
来实现。 .
关于c# - Sprite 变得模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14821400/