我使用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
的限制,我不知道?
答案 0 :(得分:0)
如果它适用于短路径然后停止长路径工作,我会假设(如@matt所做的那样)是因为SKShapeNode的限制。
您是否尝试过创建多个路径较短的SKShapeNode并将其全部放入另一个SKNode?使用此解决方案,您可以使用父SKNode(充满较小的SKShapeNodes),就好像它是更大的SKShapeNode,但(我希望)所有较短的路径都能正确呈现...