2013-09-25 59 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兒童時,它可能會導致令人沮喪的問題,因爲他們可能會遞歸縮放並最終小於您的預期。