は、ここに私のコードです:(SWIFT +のSpriteKitベース)
override func didMoveToView(view: SKView) {
/* Setup your scene here */
let origin = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
let delay = SKAction.waitForDuration(2.0)
for (var i = 0; i < 6; i++) {
//generate a random point on a circle centered at origin with radius of 500
let point = randomPointOnCircle(500, center: origin)
let chanceToSpawn = arc4random_uniform(100)
switch chanceToSpawn {
case 0...60:
self.runAction(delay){
let smallBall = SKSpriteNode(imageNamed: "smallBall”)
self.addChild(smallBall)
smallBall.xScale = 0.05
smallBall.yScale = 0.05
smallBall.position = point
let finalDest = CGPointMake(origin.x, origin.y)
let moveAction = SKAction.moveTo(finalDest, duration: 5.0)
smallBall.runAction(SKAction.sequence([SKAction.waitForDuration(0.1), moveAction, SKAction.runBlock({
smallBall.removeFromParent()
})]))
delay
}
break
case 61...80:
//same as case 0…60, smallBall changed to “mediumBall”
break
case 81...99:
//same as case 0…60, smallBall changed to “largeBall”
break
default:
break
} // ends switch statement
}//ends for loop
}//end didMoveToView
基本的に私は円上のランダムな点に出現ボールを持っており、中心に向かって移動します。しかし、私が抱えている問題は、どのように並べ替えても(つまり、異なるループを試したり、ボールの動きやボールの動きを定義して、単にswitch文の中から呼び出すなど)何を並べ替えてもボールが同時に出現する。私はそれを作るようにしています(ボールが発生し、スレッドが数秒待ってから別のボールを生み出すということを意味します)、なぜボールが同じようにスポーンしているのか分かりません他のすべてのボールと同じ時間。
私はかなりSwift/Spritekitプログラミングの新人です。私はいくつかの細部を見落としているように感じており、これは本当に私を悩ましています。どんな助けにも感謝!
それは働きました!どうもありがとうございます!私が遭遇した問題は、変数iが二重であることを明示的に宣言しなければならないということでしたが、それ以外はうまくいっています!再度、感謝します! :D –