【问题标题】:Making a half circle path with CGPath, and follow the path with SKAction用 CGPath 做半圆路径,用 SKAction 跟随路径
【发布时间】:2016-06-20 18:57:51
【问题描述】:

我不知道如何使用 CGPath 制作半圆路径。我有代码:

  let path = CGPathCreateMutable()
  let Width: CGFloat = 38.0
  let radius: CGFloat = (Width / 2.0) + (Treshold / 2.0)
  CGPathAddArc(pathOne, nil, x, 0.0, radius, firstPoint.position.x, secondPoint.position.x, true)
  let waitAction = SKAction.waitForDuration(1.0)
  let moveAction = SKAction.followPath(pathOne, duration: 3.0)
  capOne.runAction(SKAction.sequence([waitAction, moveAction]))

【问题讨论】:

    标签: swift sprite-kit skaction cgpath


    【解决方案1】:
    import SpriteKit
    
    class GameScene: SKScene, SKPhysicsContactDelegate {
    
        override init(size: CGSize) {
            super.init(size: size)
            let square = SKSpriteNode(color: SKColor.redColor(), size: CGSizeMake(20, 20))
            square.position = CGPointMake(self.size.width/2, self.size.height/2)
            addChild(square)
    
            let bezierPath = UIBezierPath(arcCenter: CGPointMake(0, 0), radius: 100, startAngle: CGFloat(M_PI_2), endAngle: CGFloat(-M_PI_2), clockwise: false)
    
            let pathNode = SKShapeNode(path: bezierPath.CGPath)
            pathNode.strokeColor = SKColor.blueColor()
            pathNode.lineWidth = 3
            pathNode.position = square.position
            addChild(pathNode)
    
            square.runAction(SKAction.followPath(bezierPath.CGPath, asOffset: true, orientToPath: true, duration: 2))
        }
    
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
    }
    

    【讨论】:

    • 谢谢,hamobi。这就是我要找的)
    • 如果我想用半圆路径交换这两个精灵,如何从两个精灵位置计算 startAngle 和 endAngle。我试过你的例子,但你的半圈不能解决我的问题。当我将第一个精灵与第二个交换时,我需要两个精灵上方的半圆路径,当我将第二个精灵移动到第一个精灵时,它们下方的另一个半圆。
    • 我已经发布了另一个问题,请你看看这个)
    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2022-11-30
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    相关资源
    最近更新 更多