2013-09-25 26 views
9

我正在尝试在游戏中使用SKShapeNodes,并发现antialiased SKShapeNodes非常模糊。是否可以修复抗锯齿SKShapeNodes的模糊性?

无抗锯齿:

image without antialiasing

抗锯齿:

image with antialiasing

是否有某种方式来使用SpriteKit SKShapeNodes的抗锯齿,以减少楼梯踩线,但没有使线条模糊如上面的第二个图像?

回答

5

不,这就是“形状”节点上“抗锯齿”的样子。你可能期望看到更像multisampling的东西,但这不是SpriteKit在这里做的。为了获得平滑的非模糊线条,您需要将自己的形状绘制成图像,然后将其显示在SKNode中。你也可以在API上考虑filing an enhancement request

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 

这使得渲染出现模糊得多,但是被警告,加入SKNodes儿童时,它可能会导致令人沮丧的问题,因为他们可能会递归缩放并最终小于您的预期。