我使用spritekit引擎工作,并面临以下问题。我需要在地图上绘制一条路线,为此,我创建一个点数组,并使用CGPathAddLines
方法创建一个数组路径。一切工作正常,直到我试图建立在地图上两个遥远的点之间的路线。它的路径没有被渲染。长CGPath不会渲染
我开始处理这个问题。我用CGPathGetBoundingBox
得到了我的路径的边界框,并且我注意到,每次绘制的路径宽度都不超过2005像素。我知道这听起来很奇怪,但在我看来确实如此。下面的代码的那部分,用于创建和显示的路径:
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
的限制吗?
“或者这是CGPath的限制”不是CGPath,但可能是SKShapeNode。众所周知,有许多不幸的限制,你可能已经击中其中之一。 – matt
感谢您的回复,您能否介绍一些绘制无SKShapeNode路径的方法? –
你可以将它绘制成一个图层或视图,如果这只是一个精灵套件的情况。这使它变得更加困难。我想你可以尝试将它绘制到图像上下文中,并将生成的图像用作纹理。 – matt