2016-03-07 12 views
5

Non ho idea di come creare un percorso semicerchio con CGPath. V'è il codice che ho:Creazione di un percorso semicerchio con CGPath e seguire il percorso con SKAction

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])) 

risposta

7
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") 
    } 
} 
+0

Grazie, hamobi. Questo è quello che cerco) –

+0

Come posso calcolare startAngle e endAngle da due posizioni di sprite, se voglio scambiare entrambi questi sprite con il percorso del semicerchio. Ho provato il tuo esempio, ma il tuo semicerchio non risolve il mio problema. Ho bisogno di un percorso a mezzo cerchio sopra di due sprite, quando cambio lo sprite prima con il secondo, e un altro semicerchio sotto di loro, quando sposto il secondo sprite ai primi. –

+1

forse fai un'altra domanda e pubblica del codice. :) – hamobi

Problemi correlati