2015-07-27 1 views
1

Je veux créer un effet Flip dans swift avec SKSpriteNode comme ceci effect. J'essaie ce solution mais avant la rotation horizontale nous pouvons voir une rotation verticale. Je veux juste une rotation horizontale comme dans l'exemple avec HTML/CSS.Comment créer un effet Flip pour SKSpriteNode dans swift

+0

après que flip devrait être le même sprite? Vous pouvez utiliser une action avec xScale à -1 il retournera l'image –

+0

Ici vous pouvez trouver comment faire le flip http://www.raywenderlich.com/76718/card-game-mechanics-sprite-kit-swift –

+0

Non Je veux changer mon sprite pendant le flip tutoriel de Ray Wenderlich. J'essaye cette fin d'après midi et je te fais un retour. Merci – gabrielpf

Répondre

1

Solution pour ne retourner avec SKSpriteNode:

func flipTile(node : RectSprite){ 

     let flip = SKAction.scaleXTo(-1, duration: 0.4) 

     node.setScale(1.0) 

     var changeColor = SKAction.runBlock({ node.texture = SKTexture(imageNamed: "blue")}) 
     var action = SKAction.sequence([flip, changeColor]) 

     node.runAction(action) 

} 
0

Le code ci-dessus m'a aidé à créer cette fonction ci-dessous à Swift 3. Notez les différences de syntaxe mineures, mais encore tout à fait similaire.

Pourrait probablement définir à nouveau les actions en tant que variables et les exécuter dans [] aussi, mais c'était assez succinct pour moi.

func flipCard (node: SKNode, label: SKLabelNode) 
     { 
      label.isHidden = true 

      node.run(SKAction.sequence(
       [SKAction.scaleX(to: 0, duration: 0.2), 
       SKAction.scale(to: 1, duration: 0.0), 
       SKAction.setTexture(SKTexture(imageNamed: "Redcard-blank")), 
       SKAction.fadeOut(withDuration: 2), 
       SKAction.fadeIn(withDuration: 2), 
       SKAction.fadeOut(withDuration: 2), 
       ] 
      )) 
      label.isHidden = false 
     }