我正在尝试在游戏中使用SKShapeNodes,并且发现抗锯齿的SKShapeNodes非常模糊。
没有抗锯齿:
使用抗锯齿:
是否有某种方法可以在SpriteKit中使用SKShapeNodes的抗锯齿来减少线条上的阶梯踩踏,但不会像上面的第二张图片那样使线条模糊?
答案 0 :(得分:5)
不 - 这就是形状节点上的“抗锯齿”效果。您可能希望看到更像multisampling的内容,但这不是SpriteKit在这里所做的事情。要获得平滑的非模糊线条,您需要将形状绘制到图像中,然后在SKNode中显示。您可能还会在API上考虑filing an enhancement request。
答案 1 :(得分:0)
这不是一个漂亮的解决方案,但确实有效:创建一个更大的SKShapeNode并缩小它。
正常:
let shape = SKShapeNode(circleOfRadius: 10)
缩放:
let scaleFactor: CGFloat = 2
let shape = SKShapeNode(circleOfRadius: 10 * scaleFactor)
shape.xScale = 1 / scaleFactor
shape.yScale = 1 / scaleFactor
这使得渲染看起来不那么模糊,但被警告,在将SKNode添加为子节点时会导致令人沮丧的问题,因为它们可能会递归缩放并最终小于您的预期。