Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

22.05.2015, 16:14

Sei es wie es sei Urprimat scheint erstma damit zufrieden zu sein.


Ja bin ich soweit. Wenn meine Projekte Komplexer werden schau ich mir das nochmal genauer an.
Aber: ich verstehe nicht warum ich eine addState Methode benutzen soll. Da es ja, so viel ich weiß, keine Dynamischen Enums in c++ gibt(weiß garnicht obs die überhaupt gibt), verstehe ich nicht wie ich dann ein Zustand zu Laufzeit hinzufügen kann, ohne ihn davor zur Entwicklungszeit dem Enum bekannt zu machen.
Edit: ich meine jt natürich nur das Enum Element also Zb Menu, Game, Intro...

Dann könnte ich ja auch gleich alles zur Entwicklungszeit Festlegen oder strings bentuzen. Was ich aber net alzu doll finde :thumbdown:

Urprimat
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

Linus Torvalds

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

22

22.05.2015, 16:31

Dein StateManager muss die einzelnen States kennen. Die Schlüssel welche hier öfter als Namen bezeichnet wurden muss er auch kennen. Du könntest jetzt einfach im Konstruktor die Map im StateManager füllen (oder welche Datenstruktur du zum speichern deiner States nutzt), oder gibst dem Manager eben so eine AddState Funktion. Mach dir wegen den Enums mal keine Gedanken. Durch fuckelei kann man in C++ auch Enums erweitern soweit ich das richtig im Kopf habe. Das wird man aber auch nur machen wollen (wenn überhaupt) wenn du deinen StateManager als vorkompilierte Bibliothek ausliefern möchtest. Und selbst da wäre es vermutlich schöner den Typ vom Schlüssel (der Name) per Template anzugeben.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

23

22.05.2015, 18:25

Hmm na gut 8)
Also es Funzt jetzt. ich habe es jedoch über den Konstruktor der StateManger Klasse geregelt.Dieser ruft aber die addState Mehtode auf um die Die Paare für die Map zu erstellen. :rolleyes:

Zitat

Und selbst da wäre es vermutlich schöner den Typ vom Schlüssel (der Name) per Template anzugeben

Templates habe ich leider nocht net so richtig drauf um das zu Realisieren schätze ich

Grüße Urprimat
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

Linus Torvalds

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Urprimat« (22.05.2015, 18:32)


24

22.05.2015, 18:47


Hmm na gut =)
Also es Funzt jetzt. ich habe es jedoch über den Konstruktor der StateManger Klasse geregelt. Die Paare für die Map werden aber mit einer addState Methode erstellt.


Wenn du ihn jetzt irgendwo anders wiederverwenden möchtest, must du den Code an 2 Stellen bereinigen. Einmal die Enum-Variable anpassen und dann den Konstruktor löschen bzw. den neuen States anpassen. In meinen Augen gibt es sonst keinen speziellen Grund.

Gruß Koschi
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Werbeanzeige