LDRZ Fortschritt #6: Knockback! Die erste special attack!

Getreu dem Motto ein Video sagt mehr als tausend Worte, diesmal zuerst das Vid:

Wie ihr schon sehen könnt, es gibt die erste coole Attacke :)! Ihr glaubt gar nicht, wie viel Spaß es macht, die Skelette durch die Gegend zu werfen, nachdem wir immer noch keine andere Möglichkeit haben, uns zu wehren. Wenn ihr wissen wollt, wie das ganze umgesetzt ist, lest den kompletten Beitrag…

Auswahl der „Opfer“

Zunächst stellte sich die Frage, wie ich an die Skelette rankomme, die sich in der Schwertreichweite befinden. Zum Glück bin ich hierbei über Physics.OverlapSphere gestolpert. Mit Hilfe dieser Funktion bekommt man alle Physik-Objekte, die sich innerhalb einer definierten Kugel befinden. Also habe ich einfach ausgehend vom Spieler eine Kugel mit einem Radius von 5 benutzt, um die Skelette zu finden:

Man bekommt ein Array von Collider-Objekten zurück, welches man anschließend nur noch durchgehen muss, um entsprechend die Gegner-Objekte über ihren KnockBack zu informieren. Die Gegner kümmern sich dann selbst darum, dass sie – ausgehend von dem Mittelpunkt (der Position des Spielers) – zurückgeschlagen werden. Die Option SendMessageOptions.DontRequireReceiver ist hier hilfreich, um nicht ständig Fehlermeldungen in der Konsole zu erhalten, falls sich auch nicht-Gegner oder Gegner ohne KnockBack-Methode innerhalb der OverlapSphere befinden.

Zurückwerfen der Skelette

Bei den Skeletten selbst ging das zurückwerfen äußerst einfach:

Zunächst wird in der KnockBack-Methode die Richtung des Knockbacks gespeichert (und normalisiert, außerdem wird die y Komponente entfernt). Sowie der Zeitpunkt zum Beginn des Knockbacks.

An den Beginn der moveEnemy-Methode (woops, die ist ja noch immer nicht c# konform, was die Großschreibung der Methodennamen betrifft) wird einfach geprüft, ob der letzte Knockback noch innerhalb des Tolleranzbereiches liegt (hier 0.5 – das sollte man später konfigurierbar machen). Falls ja wird das Skelett entsprechend in die Knockbackrichtung bewegt. Alle anderen Bewegungsskript-Bestandteile werden während dem Knockback ignoriert.

Sehr sehr gut sieht es auch während der Flugphase aus, wenn ich dem Knockback eine positive y-Richtung verpasse. Dann fliegen die Skelette in hohem Bogen davon und rutschen nicht nur über den Boden. Das Problem ist, dass mein aktuelles Bewegungsskript aber noch nicht damit klar kommt, wenn die Skelette in der Luft sind. Sie fangen dann an sich gegenseitig auf den Köpfern herumzulaufen, was dann doch wieder ziemlich dämlich aussieht. Aber ich denke es ist später auf jeden Fall noch einmal einen Versuch wert das auch mit Y-Richtung hinzubekommen.

Wie findet ihr das Knockback :)? Habt ihr auch schon Lust die Skels zu verprügeln?

Ein Gedanke zu „LDRZ Fortschritt #6: Knockback! Die erste special attack!

  1. Achja: Ganz vergessen…
    Die Animation des Spielers ist noch nicht auf den Zeitpunkt des Knockbacks angepasst, und ein Sound fehlt hier auch noch. Aber das werdet ihr dann vielleicht schon im nächsten Video sehen 🙂 Hier ging es mir erstmal nur um den Knockback an sich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.