Ich bin in der Planungsphase eines kleinen Rollenspiels.
Der Charakter hat eine Reihe von Attributen wie Stärke, Beweglichkeit usw., die als ganze Zahlen dargestellt werden. Der Charakter wird auch eine Reihe von Angriffen haben, die als Angriffsklasse dargestellt werden.
Bei jedem Angriff möchte ich, dass er basierend auf den Charakterattributen Schaden verursacht, zB: Der Angriff "Schwerthieb" verursacht 10 dmg + den Wert der Charakterstärke.
Die Art und Weise, wie ich mir das vorgestellt habe, ist eine abstrakte Angriffsklasse mit einer abstrakten Attack-Methode. Für jeden Angriff erstelle ich eine Klasse, die die Attack-Methode implementiert.
public class SwordSlash:Attack
{
public void Attack(Character attacker, Character defender)
{
defender.DoDamage(10 + attacker.Strength);
}
}
Ich sehe, dass es ein Albtraum sein wird, dies aufrechtzuerhalten.
Hat jemand eine Idee, wie ich das auf eine schönere Weise erreichen kann?
Was ich denke, ist das Hauptproblem, wie man das korrekte Attribut eingibt, das auf dem Angriff basiert.
quelle
Sie möchten Aggregate-Objekte über Komponenten und Game Object Construction Rabbit Hole aus dem Replica Island- Blog lesen .
quelle
Ich hätte eine Waffenklasse, die eine Angriffsmethode hat, die Sie mit dem gewünschten Verhalten überschreiben. Sie können dann auch festlegen, wie die Waffe im Spiel aussieht, wie viel sie im Inventar verkauft usw. in derselben Klasse.
quelle
Ich bin wirklich neu in diesem Bereich, aber die Art und Weise, wie ich es tun würde, ist, eine allgemeine Angriffsklasse zu erstellen.
Wenn eine Charakterinstanz eine andere Charakterinstanz angreifen möchte, wird eine Instanz der Angriffsklasse erstellt, die mit den erforderlichen Daten und der ID des Charakters gefüllt ist, der sie erstellt hat. Anpassungen von der Ausrüstung würden dann auf das Angriffsobjekt angewendet, wobei Daten verwendet würden, die in ein XML-Dokument oder ähnliches eingegeben werden könnten.
Diese Klasseninstanz würde dann in eine andere Klasse eingeschlossen, um der Umgebung Hooks zur Bestimmung des Bereichs oder dergleichen bereitzustellen. Wenn der Angriff gültig ist, wird die Angriffsinstanz an den angegriffenen Charakter übergeben, der die Effekte anwendet.
Ich hoffe, das ergab einen Sinn.
quelle