2017-01-05 8 views
1

私はdidMove(to view)に表示されている SKSpriteNodeを、持っている:SKSpritenodeアレイ表示

cyan = self.childNode(withName: "cyan") as! SKSpriteNode 
    red = self.childNode(withName: "red") as! SKSpriteNode 
    green = self.childNode(withName: "green") as! SKSpriteNode 
    yellow = self.childNode(withName: "yellow") as! SKSpriteNode 
    purple = self.childNode(withName: "purple") as! SKSpriteNode 

私は配列を作り、配列にそれらを追加しました:

 colors = [cyan, red, green, yellow, purple] 

私は今、配列をシャッフル順序が異なり、配列の順番で色を表示したいのですが、どのようにすればいいですか? ウェブを検索しましたが、役に立たないものは見つかりませんでした。

+0

'colors'配列の新しい順序を使用してスプライトを左から右に表示しますか? –

+0

はい、私は0から4まで表示しようとしていますが、色がスプライトキットのノードであるとは限りませんでした。 – swiftnewbie

答えて

1

あなたがシャッフル配列の順に色を表示したい場合は、カラー配列のループすることができます

for color in colors { 
    //do whatever you want with the color 
} 
+0

私は質問を作成する前にこれをうんざりしていましたが、スプライトキットノードであるため動作しません。申し訳ありませんが不明確です。 – swiftnewbie

+0

正確に何を表示しようとしていますか?ノードの色のリテラル名またはノードの名前? – claassenApps

+0

私は赤(例えば)という変数を持っていますが、この変数はSpriteKitノードです。色の色が赤であれば、赤い画像を表示したい。 – swiftnewbie

2

あなたはそれらに異なるx座標を割り当てる画面上にいくつかのスプライトを起動することができます。

class GameScene: SKScene { 

    func spawn(sprites: [SKSpriteNode]) { 
     for (index, sprite) in sprites.enumerated() { 
      sprite.position.x = frame.width/CGFloat(sprites.count) * CGFloat(index) - (frame.width/2) 
     } 
    } 
} 

spawnを呼び出して、スプライトの配列をパラメータとして渡すだけです。

+0

ありがとう、それは私が意味するexcatlyではありませんが、今私は解決策を試しています。 – swiftnewbie

+1

@swiftnewbieと言っています。私はあなたが達成しようとしていることを詳しく説明することをお勧めします。 appzYourLifeの答えは、私があなたの質問を読んだときにあなたが望むと思ったものです。 – 0x141E

+0

@ 0x141E不明な点をおかけして申し訳ございません。私はスプライトの配列を持っている、各スプライトは色ですので、配列の最初の値が '赤'なら、配列は色です。最初に赤いスプライトを表示したいと思います。私は配列上で実行され、このコードを持っているforループを実行しようとしました:sp​​rite.texutre = self.childnode(名前:sprite.name)が動作しません。 sprite.nameは.sksファイル内のスプライトの名前です。 – swiftnewbie

関連する問題