c# - Sprite 变得模糊

标签 c# xna-4.0

我正在开始学习 C# 和 XNA,我想显示一个动画 Sprite (由我的键盘移动)。

我有这个 Sprite 文件:

basic 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);

但我的问题是移动后渲染的图像模糊:

blur problem

我试图通过更改 SamplerStates 来解决这个问题,但没有任何改变。有没有人有想法帮助我?

最佳答案

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

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

另一个选项是更改 filter method采样器的最近邻插值。您可以通过在调用 SpriteBatch.Begin 时指定 SamplerState.PointWrapSamplerState.PointClamp 来实现。 .

关于c# - Sprite 变得模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14821400/

相关文章:

c# - P/Invoke struct 关闭 32 位?

c# - 替换方法的所有用法(引入间接)

c# - 如何将参数传递给非默认构造函数?

visual-studio-2010 - 安装XNA 4.0 Visual Studio 2010 Windows 8

xna-4.0 - 哪些游戏引擎可用于 XNA 4.0?

c# - 如何使用 AngularJS、asp.net web API 上传文件并将文件上传保存到 SQL

c# - BindingSource 取消 AddingNew

c# - 在 Windows Phone 7 上通话失败,但在 Windows 和 Xbox 360 上可以正常工作

XNA 4.0 的运行速度为 50 fps,而不是 60 fps

c# - 在 XNA 4 中绘制行进距离