私はSpriteKit経由でゲームを作成します。ゲームでは数秒ごとにボールがスクリーンに(機能を介して)出現し、プレイヤーはそれらを爆破しなければならない。今度は、スコアを使ってプレーヤーのレベルをチェックしたいので、スコアが10より大きい場合、spawnBall関数が2回実行されます(したがって、2つのボールが画面上に生成されます)。私は更新の楽しさで試してみました(それはプレイヤーのスコアを "読み込み"、スコアに依存してspawnBall関数を呼び出すでしょう)。残念なことに私がそれをすると、数秒で数百(またはそれ)のボールが画面に表示されます(数秒ごとに関数を呼び出し、スコアがXの間に呼び出しを増やしたいと言ったので)。私は実際どのようにそれを行うか分からない。ここ は私のコードです:即時呼び出し機能複数回内更新
override func update(_ currentTime: CFTimeInterval) {
if (self.score <= 10){
spawnBalls()
}
if (self.score > 10 && self.score <= 20){
spawnBalls()
spawnBalls()
}
if (self.score > 20){
spawnBalls()
spawnBalls()
spawnBalls()
}
if (self.subscore == 3) {
_ = randomBallColorToBlow()
self.subscore = 0
}
}
func spawnBalls() {
let wait = SKAction.wait(forDuration: 1)
let action = SKAction.run {
self.createBall()
}
run(SKAction.repeatForever((SKAction.sequence([wait, action]))))
}
は私が更新機能を使用せずに、それをどのように行うことができます?
の「無限」量を加えることなく、レベルアップの「無限」量を扱うことができるように代わりにintのブール値を使用してレベルを追跡することをお勧めしますあなたの質問では、それはコードを不必要に長くし、従うのが難しくなります –