Белые линии появляются в строке SKShapeNode

Я рисую линию с помощью 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 и сам конвертирую его в быстрый.


person Aaron    schedule 20.06.2015    source источник


Ответы (1)


Я исправил это сам, установив для сглаживания значение false. Хотя в качестве дружеского примечания, на случай, если кто-то еще столкнется с этой проблемой, случайные строки все еще появляются в симуляторе, даже если для сглаживания установлено значение false, однако при запуске на реальном устройстве все работает правильно. Я предполагаю, что это просто ошибка в том, как симулятор отображает форму.

person Aaron    schedule 20.06.2015