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

11

22.01.2009, 14:34

na im simpelsten fall wäre es ja nur ein getStatus im gamestate, das nen enum zurückliefert, sowas wie:
STARTING; RUNNING; FINISHED; PAUSED
und wenn die verwaltung PAUSED erkennt, dann kommt halt das menu oder sowas, oder wenn es FINISHED erkennt, dann halt das hgihscoremenu oder whatever...
wie meinst du serialisierung?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

12

22.01.2009, 14:50

Naja. Z.B. Befindet man sich gerade in einem State, wo man eine Karte auswählte. Wie soll nun die Verwaltung an diese Information kommen? Entweder die Verwaltung muss genau wissen von welchem Typ der aktuelle State ist und dem entsprechend casten, wir verpassen dem Interface ein GetSelectedMap(), was für nur einen State ausgefüllt wird und bei den anderen States nur sinnlos ist, oder man serialisiert diese Information (z.B. in eine map), wodurch man dann aber wiederum wissen muss, wie der key heißt mit dem man die Karteninformation erhält (das meinte ich mit serialisieren). Denn irgendwie müssen ja spezielle Infos auch von einem State in einen anderen transportiert werden können.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

13

22.01.2009, 18:52

nun, States wechseln ja immer durch irgendwelche Events.

ich hab mir einfach jeweils von der EventHandling-Funktion des aktiven States den pointer auf den aktiven state zurückgeben lassen.. meistens der this kommt da, aber manchmal halt auch ein neuer. ein state muss so natürlich seine nachbarn kennen, aber muss er ja meistens.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

14

22.01.2009, 20:49

Das wollte er ja gerade nicht (wäre glaube ich Option 1, wenn ich dich richtig verstanden habe ;) ).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Stephan

Frischling

Beiträge: 26

Wohnort: Bonn

Beruf: Schüler

  • Private Nachricht senden

15

23.02.2009, 23:32

Also: Ich würde in einem Spiel grundlegend immer zu GameStates raten.
Hab es schon ohne versucht, aber da sah der Code nicht gerade übersichtlich aus. :o
Viele Grüße,
Stephan

16

24.02.2009, 10:59

nunja, aber Gamestates im eigentlichen sinne, das das Spiel fest Intro->Hauptmenü->Spiel->[zurück zu Hauptmenü]->Ende durchgeht, muss nciht sein, wenn man die Engine fest (ohne den umweg über ein 'Spiel'-Gamestate) in der Applikationsklasse verankert, sowie Hauptmenü, das auch im Spiel angezeigt werden kann, und ansonsten selbst irgendeine Form von Hintergrund macht (ob das Spiel läuft, das Hauptmenü läuft usw. würde in der Applikationsklasse mithilfe eines Bitsets o.ä. gespeichert). Das Intro könnte man z.B. als "Menü" in der Hauptmenü-Instanz verankern. Schon ist man ohne gamestates fertig.

Werbeanzeige