【发布时间】:2015-10-16 14:20:08
【问题描述】:
我使用 spritekit 引擎并面临以下问题。我需要在地图上绘制路线,为此我制作了一个点数组,并使用CGPathAddLines 方法为该数组创建了一条路径。一切正常,直到我尝试在地图上的两个遥远点之间建立一条路线。它的路径未渲染。
我开始处理这个问题。我用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。众所周知,有许多不幸的限制,您可能已经达到了其中之一。
-
谢谢你的回复,你能告诉一些没有SKShapeNode的绘制路径的方法吗?
-
如果这不是精灵套件的情况,您可以将其绘制到图层或视图中。这使它变得更加困难。我想您可以尝试将其绘制到图像上下文中并将生成的图像用作纹理。
-
再次感谢,我会努力的
标签: ios swift sprite-kit cgpath