2017-04-03 1 views
0

Dans mon jeu, l'utilisateur contrôle un navire sur lequel il se déplace.Swift SpriteKit permet à l'utilisateur de choisir entre les nœuds du joueur

Comment les jeux permettent-ils à l'utilisateur de choisir parmi une gamme de nœuds?

Par exemple offrant un bateau rouge/bleu/vert qu'ils peuvent choisir ou déverrouiller même si leur score = X.

Voici mon code pour le nœud actuel joueur:

let shipTexture = SKTexture(imageNamed: "ship1.png") 

    ship = SKSpriteNode(texture: shipTexture) 
    ship.position = CGPoint(x: self.frame.midX, y: -self.frame.height/3) 
    ship.zPosition = 3 
    ship.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 30, height: 100)) 
    ship.physicsBody!.isDynamic = false 
    ship.run(makeShipAnimate) 
    ship.physicsBody!.contactTestBitMask = ColliderType.ship.rawValue 
    ship.physicsBody!.categoryBitMask = ColliderType.ship.rawValue 
    ship.physicsBody!.collisionBitMask = ColliderType.ship.rawValue 
    ship.physicsBody?.affectedByGravity = false 

    self.addChild(ship) 

Est il existe un moyen de permettre à l'utilisateur de choisir entre "ship1.png" ou "ship2.png" par exemple?

Répondre

0

Il y a plusieurs façons de le faire. Quelque chose comme cela devrait vous aider à démarrer:

import SpriteKit 

class GameScene: SKScene { 

    var shipName = ""//create a var to hold the chosen ship 

Ensuite, créez des boutons ou un moyen pour l'utilisateur de choisir le navire et créer une fonction pour gérer la sélection en passant dans un Int qui correspond à une couleur particulière:

func chooseShip(ship: Int) { 
     switch ship { 
     case 0: 
      shipName = "blueShip.png" 
      break 
     case 1: 
      shipName = "greenShip.png" 
      break 
     default: 
      shipName = "greenShip.png" 
     } 
    } 

donc, si le navire bleu est choisi par exemple, ce bouton appellerait la fonction ci-dessus et de passer dans la sélection:

chooseShip(ship: 0) 

Aft er l'utilisateur a choisi, vous pouvez charger l'image que vous voulez:

let shipTexture = SKTexture(imageNamed: shipName) 
etc...