我开始使用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