Fabrikemthoden mit unterschiedlich vielen Parametern
Übersicht

![]() |
M0rgensternBetreff: Fabrikemthoden mit unterschiedlich vielen Parametern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute,
Ich habe eine Frage zu folgender Problemstellung, für die ich aber ein wenig ausholen muss: Ich bin gerade dabei einen Mapeditor zu schreiben. Und momentan mache ich mir Gedanken darüber, wie ich die Maps laden/speichern soll. Denn: Auf jeder Karte kann es verschiedene Gegenstände geben. Jedoch möchte ich nicht, dass die Karte alle Gegenstände (also Spielobjekte) kennen muss, um sie abzuspeichern oder zu laden. Ums einfach zu machen: Stellt euch die Objekte wie die Items vor, die man bei The Binding of Isaac aufsammeln kann und sonst halt alles auf der Karte womit man interagieren kann (also auch Steine) (für die, dies nicht kennen: http://www.youtube.com/watch?v=BiZ6mMlOF7c). Das heißt, ich habe viele Objekte, die eigentlich komplett unterschiedlich sind. Deshalb habe ich mir folgendes Gedacht: Ich gebe jedem Objekttype eine ID und speichere in der Karte nur die ID. Dann kann ich beim laden der Karte einfach eine Fabrikmethode aufrufen, die das entsprechende Objekt anhand der ID erstellt. Jetzt ergibt sich jedoch folgendes Problem: Wenn ich mehr Informationen zu einem Objekt speichern will, zum Beispiel weil ich es nicht mit den Standardeinstellungen erstellen möchte sondern auf eine andere Weise, wie übergebe ich dann der Fabrikmethode die entsprechenden Parameter? Denn je nach Objekt könnten das ja mehr oder weniger Parameter sein. Nur weiß halt erst die Fabrikmethode, welche Parameter sie braucht. Kann mir bitte jemanden nen Denkanstoß geben? Ein ähnliches Problem habe ich nämlich auch mit den Gegnern. Wäre super, wenn jemand einen Ansatz hätte. Lg, M0rgenstern |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die ID gibt dir den richtigen Objekt-Type? Ich reiche den offenen Stream an die Lade-Funktion des Types und der ließt so viele Daten aus, wie er braucht. Mit einer zusätzlichen Schaltervariable sollten auch Standardwerte problemlos gehen.
Wie es mit einer Fabrikmethode aussieht, wüsste ich so auf Anhieb nicht. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab für etwas ähnliches eine TList genommen (Parser Factory). Jeder Paramter ist Object in der Liste.
Man übergibt immer nur eine Liste und das aufgerufene Object weiss wie die Parameter in der Liste zuzuordnen sind. |
||
Logic Gui Professional a Gui Designer for MaxGui |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach.
Verdammt. Vielen Dank euch beiden. Xeres' Beitrag war die Lösung. Mit der ID bestimme ich das zu ladende Objekt und reiche einfach den Stream weiter. Dann entscheidet das Objekt anhand von den Daten im Stream, was es laden muss. Vielen Dank. Sone einfache Lösung -.- |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group