我开始学习C#和XNA,我想显示一个动画精灵(由我的键盘移动)。
我有这个精灵文件:
要仅显示我需要的部分,我使用此代码:
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
来修复此问题,但没有任何改变。有没有人有想法帮助我?
答案 0 :(得分:5)
将精灵的位置四舍五入到最接近的整数。
如果精灵的目标矩形偏移小于一个像素,则像素着色器中的采样器将通过在相邻像素之间进行插值来计算颜色。
另一种选择是将采样器的filter method更改为最近邻插值。您可以在调用SpriteBatch.Begin
时指定SamplerState.PointWrap
或SamplerState.PointClamp
来执行此操作。
答案 1 :(得分:0)
当移动按钮被释放时,最容易被转换为(int)Position.X和(int)Position.Y