我目前正在尝试创建一个由直线向上组成的应用程序,但是当点击屏幕时,它会以45度角(向左或向右)变化。
我正在创建这样的路径:
var path = CGPathCreateMutable()
for var i = 0; i < wayPoints.count; i++ {
let p = wayPoints[i]
if i == 0 {
CGPathMoveToPoint(path, nil, p.x, p.y)
} else {
CGPathAddLineToPoint(path, nil, p.x, p.y)
}
}
我像这样填充了wayPoints数组(这块代码每秒被调用几次):
if (wayPoints.isEmpty) {
wayPoints.append(CGPointMake(0, CGRectGetMinY(self.view!.frame)))
} else {
if (wayPoints.count >= 30) {
while (wayPoints.count >= 30) {
wayPoints.removeAtIndex(0)
}
}
if (currentPosition == Position.Right) {
wayPoints.append(CGPointMake(wayPoints.last!.x + 1, wayPoints.last!.y + 1))
} else if (currentPosition == Position.Left) {
wayPoints.append(CGPointMake(wayPoints.last!.x - 1, wayPoints.last!.y + 1))
} else {
wayPoints.append(CGPointMake(0, wayPoints.last!.y + 1))
}
}
(当点击发生时,currentPosition会发生变化。)
虽然我认为这不重要,但这就是我创建SKShapeNode系列的方式:
let shapeNode = SKShapeNode()
shapeNode.path = path
shapeNode.name = "line"
shapeNode.strokeColor = UIColor.blackColor()
这有点起作用,但由于某种原因,似乎路径中存在“泄漏”(不是内存)。这是以上代码的样子: http://gyazo.com/92dd84de15e125ea3d598cbfa9a86b13
正如你所看到的,当线转动时,它几乎成了一个三角形。它应该只是一条线,而两侧没有那么多的“质量”。
答案 0 :(得分:1)
您看到的三角形是用颜色填充的线条路径。在这种情况下,黑色。要解决此问题,请通过
将形状节点的fillColor
属性设置为不可见的颜色
shapeNode.fillColor = SKColor.clearColor()
我在这里使用了SKColor
而不是UIColor
,因为前者可以在Mac OS X和iOS应用中使用而无需修改。