7

我开始学习 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,但没有任何改变。有人有想法可以帮助我吗?

4

2 回答 2

5

将精灵的位置四舍五入到最接近的整数。

如果精灵的目标矩形偏移小于一个像素,像素着色器中的采样器将通过在相邻像素之间进行插值来计算颜色。

另一种选择是将采样器的过滤方法更改为最近邻插值。您可以通过在调用时指定 aSamplerState.PointWrap或来做到这一点。SamplerState.PointClampSpriteBatch.Begin

于 2013-02-11T22:25:24.347 回答
0

最简单的是释放移动按钮时转换为 (int)Position.X 和 (int)Position.Y

于 2013-09-22T21:31:42.660 回答