ランダムに生成されたノードがビューの下に垂直に移動しています。ここでSwift SpriteKitには画面幅内にノードが含まれています
は、これを行うためのコードです:
let meteTexture = SKTexture(imageNamed: "redmete.png")
let movementAmount = arc4random() % UInt32(self.frame.width)
let meteOffset = CGFloat(movementAmount) - self.frame.width/2
let meteTime = arc4random_uniform(4) + 3;
let moveMete = SKAction.move(by: CGVector(dx: 0, dy: -2 * self.frame.height), duration: TimeInterval(meteTime))
redmete = SKSpriteNode(texture: meteTexture)
redmete.position = CGPoint(x: self.frame.midX + meteOffset, y: self.frame.midY + self.frame.height/2)
私の唯一の問題はmeteOffsetは、スプライトの中心を使用して、したがって、それは時折50%ほどがビューの外にあるので、生成できるということです。
私はまた
let meteOffset = CGFloat(movementAmount) - meteTexture.size().width/2 - self.frame.width/2
を試みたが、どちらも視野にスプライトの全体を保つないました
let movementAmount = arc4random() % UInt32(self.frame.width - meteTexture.size().width/2)
を試してみました。これどうやってするの?
:せrandomXPosition = meteorWidth/2 + arc4random()%のhorizontalRangeを。 "%"は "UInt32"と "CGFloat"タイプのオペランドには適用できません –
数式を読みやすくするために数値型キャストを記述しませんでした。必要に応じて、CGFloatにキャストする必要があります。 –
私はCGFloatにキャストしましたが、これはまだ問題を解決しませんでした。私は多くの組み合わせを試しましたが、何もできません。何かがあれば、ノードはさらに時間をかけて画面から外れるようになります –