Как переместить противника в сторону движущегося игрока?
Я создаю простую игру с набором спрайтов, которая расположит игрока с левой стороны экрана, а враги - справа. Поскольку игрока можно перемещать вверх и вниз, я хочу, чтобы враги «ловко» корректировали свой путь к игроку.
Я пытался удалить и повторно добавить последовательность 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()
}