【问题标题】:White lines appearing in SKShapeNode lineSKShapeNode 线中出现白线
【发布时间】:2015-06-20 19:36:04
【问题描述】:

我正在使用 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
}

我更改了 touchesBegan 上的 currentPosition 变量(我只是让它与当前的相反)。 我环顾四周,并没有发现任何与我的问题相似的东西。我必须做一些特别的事情来确保这些白线不会出现吗?任何帮助表示赞赏,我很乐意使用客观的 c 代码并自己将其转换为 swift。

【问题讨论】:

    标签: ios swift sprite-kit skshapenode


    【解决方案1】:

    我通过将抗锯齿设置为 false 自己解决了这个问题。尽管作为一个友好的说明,以防其他人遇到这个问题,即使抗锯齿设置为 false,模拟器上仍然会出现随机线,但是当在实际设备上运行时,它可以正常工作。我猜这只是模拟器渲染形状的一个错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      相关资源
      最近更新 更多