Я рисую линию с помощью SKShapeNodes. Эта линия постоянно «растет» или всегда движется вверх. Когда пользователь нажимает на экран, линия должна менять направление вправо или влево под углом 45 градусов. Он это делает, однако по какой-то причине в линии появляются случайные белые линии, когда она меняет направление. Они выглядят так:
Этих белых полос там быть не должно, и я понятия не имею, что их вызывает. Я создаю строку со следующим кодом: Каждые 0,1 секунды эта функция вызывается
func addPoint() {
if (wayPoints.isEmpty) {
wayPoints.append(CGPointMake(0, CGRectGetMinY(self.frame)))
} else {
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))
}
}
}
И затем в функции update() это:
func drawLines() {
enumerateChildNodesWithName("line", usingBlock: {node, stop in
node.removeFromParent()
})
if let path = createPathToMove() {
let shapeNode = SKShapeNode()
shapeNode.path = path
shapeNode.name = "line"
shapeNode.strokeColor = UIColor.blackColor()
shapeNode.lineWidth = 20
shapeNode.zPosition = 5
shapeNode.lineCap = kCGLineCapRound
self.addChild(shapeNode)
}
}
И createPathToMove выглядит так:
func createPathToMove() -> CGPathRef? {
if wayPoints.count <= 1 {
return nil
}
var ref = CGPathCreateMutable()
for var i = 0; i < wayPoints.count; i++ {
let p = wayPoints[i]
if i == 0 {
CGPathMoveToPoint(ref, nil, p.x, p.y)
} else {
CGPathAddLineToPoint(ref, nil, p.x, p.y)
}
}
return ref
}
Я меняю переменную currentPosition на touchesBegan (я просто делаю ее противоположной тому, что есть сейчас). Я огляделся некоторое время и не нашел ничего похожего на мою проблему. Есть ли что-то особенное, что я должен сделать, чтобы эти белые линии не появлялись? Любая помощь приветствуется, и я с радостью возьму объективный код C и сам конвертирую его в быстрый.