【问题标题】:XNA sprite loses pixels on a very pixelated imageXNA sprite 在非常像素化的图像上丢失像素
【发布时间】:2015-10-02 14:05:14
【问题描述】:

所以这可能有点含糊,但我遇到了一些问题。基本上,我正在绘制我的小忍者精灵 (16x16px),在他的 2 帧动画中,他的头带上丢失了像素。我到处寻找答案,但无济于事。

原始 Sprite 表(错误帧为第 4 行、第 3 和第 4 帧):

经过更多调查,错误的像素似乎是由于精灵表的宽度造成的。根据宽度,哪些像素被弄乱了,这似乎是随机的。但是,如果宽度恒定,则无论创建新版本还是使用旧版本,混乱的像素都是不变的。

如您所见,他的头带背面缺少像素。虽然它可能不会改变游戏规则,但它非常烦人,如果有人知道修复,那就太好了!谢谢大家!

【问题讨论】:

  • 您能否发布原始精灵表,而不仅仅是发生问题的屏幕截图?

标签: c# xna sprite


【解决方案1】:

所以我发现的一种解决方法实际上是更改用于显示图像的矩形的大小。设置为 100,设置为 99 作品,几乎没有任何视觉差异。

【讨论】:

    【解决方案2】:

    我的猜测是这些像素是洋红色 (255,0,255),SpriteTextureProcessor 会自动将图像从图像中抠出为透明的。如果是这种情况,请将像素更改为稍微不同的颜色 (255,1,255) 或使用 TextureProcessor 处理内容。您可以在内容项目中图像文件的属性窗口中执行此操作。

    【讨论】:

    • 精灵源是一个 16x16px 的矩形。精灵表很好,但是沿着线的某个地方,纹理在这几个地方丢失了像素。
    • 好吧,根据你的精灵表,我猜错了。我仍然会为图像尝试不同的内容处理器,看看它是否仍然存在。
    • 在进一步调查中,它不仅发生在这些帧上。它发生在与该列具有同一列的像素的所有帧上。所以倒数第二行,当剑落下时,小道全是锯齿状的。就好像游戏在整个时间内只在行上错误地渲染图像。
    • 所以我做了更多的事情。搞砸的像素以某种方式与图像的宽度相关联。去掉我的 spritesheet 上的最后 2 列像素会在这里和那里产生一些损坏的像素,并不多。但是增加更多的宽度意味着更多的扭曲像素。不确定使用不同的内容处理器是否会有所作为。我是一个 C#/XNA 菜鸟,所以我不太确定该怎么做。
    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    相关资源
    最近更新 更多