gpt4 book ai didi

ios - SKShapeNode 线中出现白线

转载 作者:行者123 更新时间:2023-11-30 14:17:26 27 4
gpt4 key购买 nike

我正在使用 SKShapeNodes 绘制一条线。这条线不断地“生长”,或者说总是向上移动。当用户点击屏幕时,线条应以 45 度角向右或向左改变方向。它会这样做,但是由于某种原因,当它改变方向时,线中会出现随机的白线。它们看起来像这样: enter image description here

那些白线不应该在那里,我不知道是什么原因造成的。我正在使用以下代码创建该行:每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变量(我只是将其设置为与当前相反)。我环顾了一段时间,没有发现与我的问题类似的东西。我需要做一些特别的事情来确保这些白线不会出现吗?感谢任何帮助,我会很乐意使用 Objective C 代码并将其自己转换为 Swift。

最佳答案

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

关于ios - SKShapeNode 线中出现白线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30958104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com