长CGPath不呈现

时间:2015-10-16 14:20:09

标签: ios swift sprite-kit cgpath

我使用spritekit引擎并遇到以下问题。我需要在地图上绘制一条路线,为此我创建一个点数组,并使用CGPathAddLines方法为数组创建路径。一切正常,直到我试图在地图上的两个远点之间建立一条路线。路径的路径未呈现。

我开始处理这个问题。我用CGPathGetBoundingBox得到了路径的边界框,我注意到每次宽度超过2005 px时都不绘制路径。我知道这听起来很奇怪但在我的情况下确实如此。在用于创建和显示路径的代码部分下方:

var pathToDraw = CGPathCreateMutable()    
let pathPoints = generatePathPoints()
CGPathAddLines(pathToDraw, nil, pathPoints, pathPoints.count)      

var shapeNode = SKShapeNode()
shapeNode.path = pathToDraw
shapeNode.lineWidth = 10
shapeNode.strokeColor = UIColor.blueColor()

var effectNode = SKEffectNode()
effectNode.addChild(shapeNode)
mapNode.addChild(effectNode)

generatePathPoints - 函数返回[CGPoint]

mapNode - SKSpriteNode类型的对象

也许我做错了或者这是CGPath的限制,我不知道?

1 个答案:

答案 0 :(得分:0)

如果它适用于短路径然后停止长路径工作,我会假设(如@matt所做的那样)是因为SKShapeNode的限制。

您是否尝试过创建多个路径较短的SKShapeNode并将其全部放入另一个SKNode?使用此解决方案,您可以使用父SKNode(充满较小的SKShapeNodes),就好像它是更大的SKShapeNode,但(我希望)所有较短的路径都能正确呈现...