如何将敌人移向移动的玩家?

我正在创建一个简单的Sprite Kit游戏,它将玩家放置在屏幕的左侧,而敌人则从右侧靠近。由于玩家可以上下移动,我希望敌人“聪明地”调整他们朝向玩家的路径。


我试图在玩家移动时删除并重新添加SKAction序列,但是下面的代码使敌人根本不显示,可能是因为它只是在每次帧更新时添加和删除每个动作,所以他们永远没有机会移动。


希望获得有关创建“智能”敌人的最佳实践的一点反馈,该“智能”敌人会随时移向玩家的位置。


这是我的代码:


    func moveEnemy(enemy: Enemy) {

    let moveEnemyAction = SKAction.moveTo(CGPoint(x:self.player.position.x, y:self.player.position.y), duration: 1.0)

    moveEnemyAction.speed = 0.2

    let removeEnemyAction = SKAction.removeFromParent()

    enemy.runAction(SKAction.sequence([moveEnemyAction,removeEnemyAction]), withKey: "moveEnemyAction")

}


func updateEnemyPath() {

    for enemy in self.enemies {

        if let action = enemy.actionForKey("moveEnemyAction") {

            enemy.removeAllActions()

            self.moveEnemy(enemy)

        }

    }

}


override func update(currentTime: NSTimeInterval) {

    self. updateEnemyPath()

}


交互式爱情
浏览 381回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP