2017-12-01 11 views
0

こんにちは私はスペースバーを使って複数のノードを産んでいます。私はx秒間にフェードアウトするアクションを設定しました。それから、それらをピン止めするアクション。フェードが完了した後、すべてがあなたのスペースバーとして機能します。しかし、スペースバーを押し続けるとフェードが効いても、すべてのノードをピンで固定することはありません。フェードタイムの​​後に複数のノードを固定する

私はカウンターを置く場合、私はすべてがのmutate機能ここ

になっている見ることができますが

Xcodeの9のMac OSを探しに関連するコードのおかげではないのiOS 10.13.2

var myBall = SKSpriteNode() 

    override func keyDown(with event: NSEvent) { 
     let keyEvent = event.characters 
     if keyEvent == " "{ 
      addAlien() 
     } 
    } 


    func addAlien(){ 
     myBall = SKSpriteNode(imageNamed: "spinner") 
     myBall.zPosition = 1 
     myBall.xScale = 4 
     myBall.yScale = 4 

     // Determine where to spawn the ball along the Y axis 
     let actualY:CGFloat = CGFloat(arc4random_uniform(624))-312.0 
     // Position the ball 
     myBall.position = CGPoint(x: 460.0, y: actualY) 

     // Determine physicsBody of the ball 
     myBall.physicsBody = SKPhysicsBody(circleOfRadius:myBall.size.width/2) 
     myBall.physicsBody!.isDynamic = true 
     myBall.physicsBody!.affectedByGravity = true 
     myBall.physicsBody!.friction = 0 
     myBall.physicsBody!.restitution = 1 
     myBall.physicsBody!.mass = 0.008 

     addChild(myBall) 

     myBall.physicsBody!.applyImpulse(CGVector(dx: 3.0, dy: -3.0)) 

     let actionFade = SKAction.fadeAlpha(to: 0.2, duration: 5) 
     let actionMutate = SKAction.run(self.mutateFunc) 

     //run in a sequence 
     myBall.run(SKAction.sequence([actionFade,actionMutate])) 

    }//end of addAlien 

    func mutateFunc(){ 
     myBall.physicsBody!.pinned = true 

    } 

答えて

0

こんにちは質問に答えるためのアプローチですが、その理論と実行には手の込んだです。私はフェードタイム内に40 +をスポーンすることができるようにしたい。まだ最高の答えを探しています。

Xcodeの9のMac OSではないのiOS 10.13.2

override func keyDown(with event: NSEvent) { 
    let keyEvent = event.characters 
    if keyEvent == " "{ 
     addAlien() 
    } 
} 

var counter = 1 
func addAlien(){ 
    myBall = SKSpriteNode(imageNamed: "spinner") 
    myBall.zPosition = 1 
    myBall.xScale = 4 
    myBall.yScale = 4 

    // Determine physicsBody of the ball 
    myBall.physicsBody = SKPhysicsBody(circleOfRadius:myBall.size.width/2) 
    myBall.physicsBody!.isDynamic = true 
    myBall.physicsBody!.affectedByGravity = true 
    myBall.physicsBody!.friction = 0 
    myBall.physicsBody!.restitution = 1 
    myBall.physicsBody!.mass = 0.008 

    // Determine where to spawn the ball along the Y axis 
    let actualY:CGFloat = CGFloat(arc4random_uniform(624))-312.0 
    // Position the ball 
    myBall.position = CGPoint(x: 460.0, y: actualY) 

    let actionFade = SKAction.fadeAlpha(to: 0.2, duration: 7) 

    if counter == 1{ 
     one = myBall 
     addChild(one) 
     one.physicsBody!.applyImpulse(CGVector(dx: 2.0, dy: -2.0)) 
     let actionMutate = SKAction.run(self.mutateFuncOne) 
     one.run(SKAction.sequence([actionFade,actionMutate])) 
    } 


    if counter == 2{ 
     two = myBall 
     addChild(two) 
     two.physicsBody!.applyImpulse(CGVector(dx: 2.0, dy: -2.0)) 
     let actionMutate = SKAction.run(self.mutateFuncTwo) 
     two.run(SKAction.sequence([actionFade,actionMutate])) 
    } 

    counter = counter + 1 
    if counter == 3{counter = 1} 
}//end of addAlien 

func mutateFuncOne(){ 
    one.physicsBody!.pinned = true 
    one.physicsBody?.allowsRotation = true 
    let rotateAction = SKAction.rotate(byAngle: 500, duration: 30) 
    one.run(rotateAction) 
} 

func mutateFuncTwo(){ 
    two.physicsBody!.pinned = true 
    two.size.height = 300 
    two.physicsBody?.allowsRotation = true 
    let rotateAction = SKAction.rotate(byAngle: 500, duration: 30) 
    two.run(rotateAction) 
} 
関連する問題