我開始使用SKS文件來快速創建遊戲,在這個遊戲中,我試圖讓敵人在手機屏幕的寬度內隨機產卵,而不是整個sks文件現場只在屏幕寬度內隨機生成敵人
override func didMoveToView(view: SKView) {
self.physicsWorld.contactDelegate = self
NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: Selector("spawnEnemy"), userInfo: nil, repeats: true)
}
func spawnEnemy(){
//supposed to pick random point within the screen width
let xPos = Int.random(self.frame.width)
enemy = SKSpriteNode(imageNamed: "enemy")
enemy.position = CGPointMake(CGFloat(xpos), self.frame.size.height/2)
enemy.physicsBody = SKPhysicsBody(circleOfRadius: 7)
enemy.physicsBody?.affectedByGravity = true
enemy.physicsBody?.categoryBitMask = 0
enemy.physicsBody?.contactTestBitMask = 1
addChild(self.enemy)
}
首先,使用SKAction或更新:產卵的方法。如果節點,場景或視圖暫停,NSTimer不受影響,因此可能導致「麻煩」。其次,您試圖一遍又一遍地添加相同的節點(在spawnEnemy方法中添加self.enemy)。你應該創建一個新的節點,或者至少創建一個現有節點的副本,然後再將它添加到場景中(如果你嘗試添加一個已經有父節點的節點,你將會得到一個錯誤)。您的代碼中還有一些拼寫錯誤。修復這一切,看看它是否工作。讓我知道你是否需要一個代碼示例。 – Whirlwind