2016-05-23 10 views
3

ユーザーが画面に触れるたびに、スプライトのイメージと位置が変わるようにプログラムを設計しました。私はSKSpriteNodesの配列を作ることができるようにしたい。私はsimilar postを見ましたが、for-inループを使用しました。初期化時にSKSpriteNodeを作成することは可能ですか?私は既にお父さんスプライトノード画面上に配置することを想定 Swiftを使用してSKSpriteNodesの配列を作成する方法は?

GameScene: SKScene { 
    // make an array of images that you will possibly change in the future 

    // calls the image 
    let dad = SKSpriteNode(imageNamed: "dad0") 
    var imageName = "dad" 

    let moveLeft = SKAction.moveByX(-10, y:0 , duration: 0.01) 

...

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

     // when index is zero, sprite is dad0. 
     // Change image to dad1 (lifted leg), don't change position  
     if index == 0{ 
      index += 1 //image names are dad0, dad1 
      imageName += "\(index)" 
      print(imageName) 
      dad.texture = SKTexture(imageNamed:imageName) 
     } 
     else{ 
      index += 1 
      imageName += "\(index)" 
      print(imageName) 
      dad.texture = SKTexture(imageNamed:imageName) 
      //moves dad 
      dad.runAction(moveLeft) // moves image 
      index = 0 
     } 
     //change the image name back to dad 
     imageName = "dad" 
    } 
} 

答えて

1

SKSpriteNodeの配列は単にかもしれない:[SKSpriteNode]SKSpriteNodeタイプの要素によって構成される迅速にアレイ)

だから、あなたはあなたがそれを行うことができ、新たなSKSpriteNodeを追加するたび:

var arraySprites :[SKSpriteNode] = [SKSpriteNode]() 

let dad : SKSpriteNode! 

dad = SKSpriteNode(imageNamed: "dad0") 

arraySprites.append(dad) 
+1

ありがとう!私は配列とクラス内の画像を初期化し、次にdidMoveToView関数内で配列にパパを追加します – codeherk

関連する問題