所以我有一个游戏,有一个叫做敌人的精灵,它周围有一个看不见的圆圈,还有一个玩家精灵,可以360度自由地绕着敌人移动.然而,当玩家进入敌人圆圈的框架时,这会触发敌人开始向玩家emits 子弹.这名球员仍然可以移动.我遇到的问题是让敌人不停地射击子弹,并且即使在球员换了位置之后,也要不断地向球员的位置射击.
我将添加一些代码来帮助您判断问题:
为了快速参考,我们这里有一篇简短的文章,其中我只包含了我认为快速帮助所需的最低限度.(我不确定在哪里调用FireBullets()函数...在更新函数内部?在DID搬家的里面?在DidBegin?)内部.
func fireBullets() {
var fireBulletAction: SKAction
fireBulletAction = SKAction.run {
let bullet = self.createBullets()
var moveBullet = SKAction.move(to: self.player.position, duration: 1)
bullet.run(moveBullet)
}
var waitForDuration: SKAction
waitForDuration = SKAction.wait(forDuration: 1)
var bulletSequence = SKAction.sequence([fireBulletAction, waitForDuration])
var repeatBulletSequence = SKAction.repeatForever(bulletSequence)
enemy.run(repeatBulletSequence, withKey: "fireBullet")
}
或者,为了更快、更容易地用所有组件(它仍然只有96行代码)重现问题,我制作了这个简单的GameScene.swft文件,您可以轻松地将它从text复制粘贴到XCode中.