2016-11-01 16 views
2

複数のテクスチャでスプライトを作成しようとしていたので、動いているかのように見えます。これは私のコードですが、私は他の質問を見ていたし、彼らが行っているものは何も私の問題を修正していない:私は、シミュレーションを実行するとSpriteNodeアニメーションが失敗しています

var textures = [SKTexture]() 
    for x in 0...2 { 
     let texture = SKTexture(imageNamed: "peng_" + String(x)) 
     textures.append(texture) 
     print("pen_" + String(x)) 
    } 
    let pen = SKSpriteNode(imageNamed: "peng_0") 
    self.addChild(pen) 
    let action = SKAction.animate(withNormalTextures: textures, timePerFrame: 0.1, resize: false, restore: true) 
    pen.run(SKAction.repeatForever(action)) 

、スプライトは「peng_0」質感で静止し、私はそれがしたいです他のテクスチャを0.1秒ごとに繰り返します。

私は間違ったことを誰かが知っていますか、ありがとう。

+0

のようなコードを設定し、アニメーションが非常に速く動いている、あなたが見ているすべてが、おかげで完璧に動作 – Knight0fDragon

答えて

1

ここに行くが、あなたは=真復元したくないこの

var array = ["R1", "R2", "R3", "R4", "R5", "R6", "R7", "R8"] 
    var textures:[SKTexture] = [] 
    for i in 0 ..< array.count{ 
     let texture: SKTexture = SKTexture(imageNamed: array[i]) 
     textures.insert(texture, at:i) 
    } 
    let pen = SKSpriteNode(imageNamed: "R1") 
    self.addChild(pen) 
    let animation = SKAction.animate(with: textures, timePerFrame: 8/60, resize: true , restore:false) 
    pen.run = SKAction.repeatForever(animation) 
+0

元のテクスチャです!追加と挿入の違いは何ですか?私の前のコードがうまくいかなかった理由を説明できますか? – Pablo

+0

Appendは配列の最後に追加します。ここで、insertは指定されたインデックスにそれを追加します。アニメーションを使って作業するとき、私はいつもインサートを使用して配列内のすべてのイメージ名を最初に設定しますが、そうすることは、文字列の1つを簡単に間違えてしまう可能性があるため、 – AlexanderKaran

関連する問題