2016-03-07 5 views
5

के साथ पथ का पालन करें मुझे नहीं पता कि CGPath के साथ आधा सर्कल पथ कैसे बनाया जाए।CGPath के साथ आधा सर्कल पथ बनाना, और 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])) 

उत्तर

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

धन्यवाद, hamobi: वहाँ कोड मैं है। मैं यही देख रहा हूं) –

+0

मैं दो स्प्राइट्स पदों से startAngle और endAngle की गणना कैसे कर सकता हूं, अगर मैं इन दोनों sprites को आधा सर्कल पथ से स्वैप करना चाहता हूं। मैंने आपके उदाहरण की कोशिश की, लेकिन आपका आधा सर्कल मेरी समस्या को ठीक नहीं करता है। मुझे दो sprites के ऊपर आधे सर्कल पथ की जरूरत है, जब मैं दूसरे के साथ पहले स्प्राइट swap, और नीचे एक और आधा सर्कल, जब मैं दूसरे sprite पहले स्थानांतरित करते हैं। –

+1

शायद एक और प्रश्न पूछें और कुछ कोड पोस्ट करें। :) – hamobi

संबंधित मुद्दे