我想用彈跳球做一個遊戲,我想每8秒產生一個球。目前,它在產卵後不會移動。我遇到的問題是,第一次球產生後,應用程序在接下來的5秒內崩潰。我不知道爲什麼會發生這種情況。我在touchesBegan函數中放置了scheduledTimerWithTimeInterval()。運行後應用程序崩潰了嗎?
func scheduledTimerWithTimeInterval(){
Enemytimer = Timer.scheduledTimer(timeInterval: 8, target:self, selector:#selector(GameScene.spawnEnemies), userInfo:nil, repeats:true)
}
func randomBetweenNumbers(firstNum: CGFloat, secondNum: CGFloat) -> CGFloat{
return CGFloat(arc4random())/CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)
}
func spawnEnemies(){
let xPos = randomBetweenNumbers(firstNum: 0, secondNum:frame.width)
let yPos = randomBetweenNumbers(firstNum: 0, secondNum: frame.height)
enemies.size = CGSize(width: 20, height:20)
enemies.color = UIColor(red:255.0,green:0.0,blue:0.0,alpha:1.0)
enemies.colorBlendFactor = 1.0
enemies.position = CGPoint(x: xPos, y:yPos)
enemies.physicsBody?.affectedByGravity = false
self.addChild(enemies)
請編輯你的問題,並告訴我們崩潰的消息,所以我們可以有更好的幫助。 –
不要使用Timer,使用內置的Spritekit函數,你可以找到如何在SO – Knight0fDragon
的地方找到它。它崩潰的原因可能是因爲你試圖向另一個父節點添加'enemies'節點,而它已經有一個父母(根據你的代碼) – Whirlwind