2016-08-13 3 views
2

私は現時点でスウィフトで私のプロジェクトの1つに少し問題があります。私はあなたがこのようなブランドの新しいスプライトノードを作成できるかどうかを知りたい:すぐに、配列から直接コピーしてSKSpriteNodeを作成することは可能ですか?

ノードはSKSpriteNodesの配列であり、インデックス番号3のオブジェクトは以前、私はJavaで働いている、と私は知っている
var spriteNode : SKSpriteNode = nodes(3) 

このようなことをするならば、新しいスプライトノード全体を作成するのではなく、単にスプライトノード変数を参照するだけですが、これが迅速に起こるかどうかはわかりません。

このように新しいスプライトノードを作成できない場合は、どのような方法で作成すればよいでしょうか(Javaでは、新しいスプライトノードを作成して文字通りすべての値をコピーします)。

+0

スプライトを既存のものから__clone__したいですか?理由は何ですか? –

+0

はい - 現時点では、私は3種類のスプライトの配列を持っています。これらのスプライトのうち20以上がランダムな順序で配列を生成したいと考えています。私はこれがこれについて正しい方法であるかどうかわからないが、私は大きな配列にそれを追加する前に、元の配列のスプライトを複製したい。 – Jake

答えて

1

あなたはスプライト

let sprites: [SKSpriteNode] = [SKSpriteNode(), SKSpriteNode(), SKSpriteNode()] 

の配列を持っている場合は、角括弧

let aSprite = sprites[0] 
を使用して値にアクセスすることができ、このコード

let sprite0 = SKSpriteNode() 
let sprite1 = sprite0.copy() as! SKSpriteNode 

を使用してSKSpriteNodeのクローンを作成することができます

とにかくパターン/ teを使う前に他の環境のニックネームSprite Kit Programming Guideを読むことをお勧めします。ツールを意図したとおりに使用すると、状況がより簡単になることがよくあります。

+0

@ジェイク:[this]を読んでください(http:// stackoverflow。 –

+0

copy()メソッドを使用しているとき、スプライトのフィジックスボディが正しくコピーされていません。一部のプロパティは元のものと同じ値を持ちません。私はすでにこれについての投稿があると思いますので、このようなスプライトをコピーするときは注意してください。 – Whirlwind

+0

@Whirlwind:ありがとう、たぶんこれ[1](http://stackoverflow.com/questions/28740031/how-to-copy-skspritenode-with-skphysicsbody)? –

関連する問題