Ich erstelle ein einfaches Sprite-Kit-Spiel, das einen Spieler auf der linken Seite des Bildschirms positioniert, während sich Feinde von rechts nähern. Da der Spieler auf und ab bewegt werden kann, möchte ich, dass die Feinde "intelligent" ihren Weg zum Spieler einstellen.Wie bewege ich den Gegner in Richtung eines sich bewegenden Spielers?
Ich habe versucht, die SKAction-Sequenz zu entfernen und neu hinzuzufügen, wenn der Spieler sich bewegt, aber der folgende Code bewirkt, dass die Gegner überhaupt nicht angezeigt werden, wahrscheinlich weil er jede Aktion bei jedem Frame-Update hinzufügt und entfernt eine Chance sich zu bewegen.
In der Hoffnung, ein kleines Feedback über die beste Praxis zu erhalten, "intelligente" Feinde zu schaffen, die sich jederzeit in Richtung der Position eines Spielers bewegen.
Hier ist mein Code:
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()
}
"Funktioniert nicht richtig" ist kein Fachausdruck.Wir benötigen vollständige Informationen über Ihre Erwartungen und was sie falsch machen. – Rob
@Rob Entschuldigung für die Ungenauigkeit, im Moment verursacht der obige Code keine Feinde zu erscheinen. Wahrscheinlich, weil es einfach jede Aktion bei jedem Frame-Update hinzufügt und entfernt, so dass sie nie eine Chance haben, sich zu bewegen. Vielen Dank! – JimmyJammed
Obwohl Sie bereits eine Antwort erhalten haben, die Sie als korrekt markiert haben, würde ich Ihnen dringend empfehlen, in GameplayKit (ios 9 API) zu schauen. Es bietet Tools für ein flexibleres Spieldesign, einschließlich Wegfindung und Suche nach Feinden, die Dinge, wie Sie sie wünschen, viel schöner und einfacher machen. Es gibt einige gute Tutorials im Internet dazu. https://www.raywenderlich.com/119959/gameplaykit-tutorial-entity-component-system-agents-goals-behaviors und http://code.utsplus.com/tutorials/an-introduction-to-gameplaykit-part- 1 - cms-24483 – crashoverride777