私は、敵が右からアプローチしている間に、プレイヤーを画面の左側に配置する簡単なスプライトキットゲームを作成しています。プレイヤーは上下に動かすことができるので、敵がプレイヤーに向かって自分の道を「スマートに」調整するようにします。移動中のプレーヤーに向かって敵を移動する方法は?
プレイヤーが移動するたびにSKActionシーケンスを削除して再追加しようとしましたが、以下のコードでは敵がまったく表示されません。おそらく、移動するチャンス。
いつでもプレーヤーのポジションに向かって移動する「スマート」な敵を作成するためのベストプラクティスについてのご意見をお寄せください。メソッド呼び出し:あなたは、各アップデートで敵position
とzRotation
プロパティを更新する必要が
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()
}
「正しく動作しません」は技術用語ではありません。私たちは、あなたの期待と不適切なことについて完全な情報を必要としています。 – Rob
@Rob曖昧さを残して申し訳ありませんが、今のところ上記のコードは敵を表示させません。おそらく、フレームごとに各アクションを追加したり削除したりするだけで、移動する機会は決してないからです。ありがとう! – JimmyJammed
あなたは正しいとマークした回答を得ていますが、GameplayKit(ios 9 API)を調べることを強くお勧めします。それは、あなたがはるかに良く、より簡単にしたいようなものを作る敵探索と経路探索を含むより柔軟なゲーム設計のためのツールを提供します。これについてのWeb上にいくつかの良いチュートリアルがあります。 https://www.raywenderlich.com/119959/gameplaykit-tutorial-entity-component-system-agents-goals-behaviorsおよびhttp://code.tutsplus.com/tutorials/an-introduction-to-gameplaykit-part- 1 - cms-24483 – crashoverride777