【问题标题】:Sprite Kit: SKNode zRotation + Anti-AliasingSprite Kit:SKNode zRotation + Anti-Aliasing
【发布时间】:2014-02-17 15:16:55
【问题描述】:

我创建了一个SKSpriteNode,只使用填充颜色和大小,然后旋转它:

SKSpriteNode *myNode = [SKSpriteNode spriteNodeWithColor:[SKColor grayColor] size:CGSizeMake(100, 100)];

myNode.zRotation = 0.2 * M_PI;

如何为SKSpriteNode 启用抗锯齿功能?现在,灰色方块的边缘看起来参差不齐。

我已经发现:当我创建一个灰色的 100x100px PNG 并使用 spriteNodeWithImageNamed: 时,边缘看起来也是锯齿状的。如果我在灰色方形 PNG 周围添加 1px 透明边框,边缘看起来很平滑。 (因为锯齿状边缘现在是透明的。)

提前感谢您的帮助!

【问题讨论】:

  • 您可以在 SKTexture developer.apple.com/library/ios/documentation/SpriteKit/… 上设置纹理过滤。不确定你的节点是否会有纹理,因为它是用颜色和大小生成的,但值得一试。
  • 谢谢,但如果没有 SKTexture,这将不起作用。 (无论如何,“SKTextureFilteringLinear”应该是默认值。)
  • @Sebastian 找到任何解决方案了吗?
  • @bobmoff:不,很遗憾不是。我认为你对此无能为力。如果您为 spritesheets 使用 TexturePacker,则有一个选项 Inner padding 可以在图像周围添加透明像素。它说:“当旋转修剪或裁剪的精灵时,它大大减少了沿多边形边缘的锯齿。例如,如果您的精灵沿着自己的边界有很多像素,那么旋转它时会更平滑地绘制。”
  • @Sebastian,好的,谢谢您的解释。

标签: ios objective-c sprite-kit


【解决方案1】:

我知道这个问题很老了,但我有一个简单的解决方案。也许是您的图像无法很好地缩放。具有大曲面的矢量图像对调整大小提出了挑战。

我所做的是: 1)如果您导入矢量文件,请务必将其转换为PNG,使用非常大的DPI(360)和大小; 2) 使用 Gimp 打开 PNG; 3) 应用因子 11(或更大)的高斯模糊。

现在,将您的图像用作纹理。如果它仍然是锯齿状的,则将 usesMipmaps 设置为 true。

【讨论】:

    猜你喜欢
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多