私は以下のようにコーディングされています:「n」個のspriteNodeを画面サイズ内に表示し、画面内を移動するにはどうすればよいですか?
func spriteCollection(count : Int) -> [SKSpriteNode]{
var spriteArray = [SKSpriteNode]()
for _ in 0..<count {
let sprite = SKSpriteNode(imageNamed: "node.png")
//giving random position to sprites, but problem is some sprites are going invisible. How do I make it appear inside the view?
let x = CGFloat(arc4random_uniform(UInt32(UIScreen.mainScreen().bounds.size.height)))
let y = CGFloat(arc4random_uniform(UInt32(UIScreen.mainScreen().bounds.size.width)))
sprite.position = CGPoint(x: x, y: y)
spriteArray.append(sprite)
}
return spriteArray
}
override func didMoveToView(view: SKView) {
let spriteCollection = spriteCollection(10)
for sprite in spriteCollection{
//facing problem here, not sure how to move it inside the view
let x = CGFloat(arc4random_uniform(UInt32(size.height)))
let y = CGFloat(arc4random_uniform(UInt32(size.width)))
let action = SKAction.moveTo(CGPoint(x: x , y: y), duration: 5)
sprite.runAction(action)
addChild(sprite)
}
}
私が今直面してる問題は、私はspriteCollection
に数10を通過した場合、私は唯一の5つのまたは6スプライトを参照し、すべてが隠されて休むことができる、です。私はちょうどすべてのスプライトを画面サイズの内側に表示させたいのですが、私が移動アクションを実行するときにはその位置も画面内にあるはずです。私は風景モードで作業しています。誰でも私にこれを解決するのを助けてください。
だからシーンのサイズをチェックし、スポーン座標をチェックして、いくつかのノードがオフされているかどうかを確認画面の境界ビューの境界にしていない基づいて、ランダムに配置してきた後に画面... – Whirlwind
ノードの位置だけでなく、ビューの幅と高さも印刷しました。任意のビューの幅 任意(375.0)<---すべてのノードのビューの高さxおよびyの位置 (492.0,62.0) (479.0,67.0) (189.0,248.0) (91.0)すべての座標は内部が、まだいくつかあるように、298.0) (54.0、214.0) (490.0、155.0) (590.0、224.0) (127.0、122.0) (328.0、233.0) (204.0、195.0)が見えますノードは表示されません。私が間違っていること –
シーンのサイズは? (シーンにノードを追加しています)。シーンのサイズはビューとは異なる場合があります。 .sksファイルからシーンをロードする場合、デフォルトでシーンサイズは1024x768です。 – Whirlwind