Ich erstelle gerade einen Top-Down-Shooter wie Touhou. Der wichtigste Faktor des Spiels ist, dass es viele verschiedene Muster und Möglichkeiten gibt, wie Kugeln erzeugt und auf den Spieler geschossen werden. Siehe dieses Video: http://www.youtube.com/watch?v=4Nb5Ohbt1Sg#start=0 : 60; Ende = 9: 53 ;
Im Moment verwende ich eine Klasse "Pattern", die eine Reihe von Schritten zum Bewegen und Schießen enthält. Ich halte diese Methode jedoch für ziemlich mühsam, da ich für jeden Angriff ein neues Muster und möglicherweise neue Bullet-Klassen erstellen muss, die ein bestimmtes Verhalten implementieren.
Diese Frage erhielt einen Kommentar, der vorschlug, dass ich mich mit BulletML befassen sollte, um Aufzählungszeichen mit einem bestimmten Muster einfach zu erstellen und zu speichern. Es sieht anständig aus, aber ich habe mich gefragt, welche anderen Lösungen Sie haben, die ich in Betracht ziehen sollte.
Aktualisieren
Mein aktuelles Design ist wie folgt:
Ein Beispiel für ein implementiertes Muster:
Mein GigasPattern führt zuerst einen Teleport aus, der Alice zu einem bestimmten Punkt (X, Y) auf dem Bildschirm bewegt. Nachdem dies abgeschlossen ist, verwendet das Muster den Mover, um das Sprite zu bewegen (während das Teleportieren separate Effekte und Animationen hat). Diese sind eigentlich nicht von Belang, da sie recht einfach sind.
Der Schütze erstellt auch verschiedene Angriffe, die wiederum Klassen sind, mit denen der Schütze verschiedene Muster von Kugeln erstellen kann, ähnlich wie in der Frage, die ich gestellt habe. Sobald der Mover sein Ziel erreicht hat, halten er und der Schütze an und kehren in einen inaktiven Zustand zurück. Das Muster ist fertig, wird von der KI entfernt und ein neues ausgewählt.
Vielleicht könnten Sie eine eigene, kleine Skriptsprache für Ihr Spiel implementieren. Dann können Sie das Verhalten von Aufzählungszeichen skripten, indem Sie einfach neue Skripte hinzufügen. Der Vorteil einer eigenen Skriptsprache ist, dass Sie diese in anderen Teilen Ihres Spiels verwenden können. Oder Sie könnten versuchen, Lua zu verwenden (ich weiß nicht, welche Sprache / welches Framework Sie verwenden). Aber meiner Meinung nach wäre Lua ein Overkill, wenn Sie nur Bewegungsmuster haben möchten.
Zwischen: Ich habe das schon für einen Weltraumschützen gemacht, aber für das feindliche Verhalten. Es hat gut funktioniert, also kann man das wirklich einfach ausprobieren.
quelle
Ich war vor einiger Zeit in genau der gleichen Situation und begann, meine eigene Architektur für Aufzählungsmuster zu implementieren. Ich habe jedoch aufgegeben, weil ich auf eine Implementierung von BulletML für C # / XNA gestoßen bin : BulletML C #
Ich musste ein paar Änderungen vornehmen, aber jetzt ist es wirklich sehr einfach, Muster zu erstellen, die spektakulär aussehen. Es gibt eine große Demo hier das zeigt, wie ein paar Zeilen von XML, ehrfürchtige Muster erstellen können.
Wenn Sie an C # arbeiten, empfehle ich dringend, das Rad nicht neu zu erfinden. Besonders wenn Sie sehr komplexe Muster haben möchten. Es kann einige Zeit dauern, bis Sie sich mit BulletML beschäftigt haben, aber meiner Meinung nach ist es Ihre Zeit wert.
Wenn Sie sich jedoch gegen BulletML entscheiden, sollten Sie sich zumindest den C # -Code ansehen und sich ein Bild von seiner Architektur machen. Es könnte Ihnen einige Ideen geben.
quelle