Seite 1 von 1

Taktische Frage: Spielstatus

Verfasst: 26.06.2006 20:57
von Vermilion
Ich habe mittlerweile ein paar Probleme mit meinem Spiel-programmier-Prinzip, was bisher so aussah:

Code: Alles auswählen

If GameState = Menu

;Zeichenoperationen und Schleifen für eine eventuelle SpriteCollission

EndIf

If GameState = InGame

;Zeichenoperationen und Schleifen für z.B. eine bewegbare Figur ausführen
Gut, ich könnt auch

Code: Alles auswählen

If ...
ElseIf
EndIf
schreiben, bloß bei mir funktioniert das nich gleich...

Also, is das so schon richtig, völlig falsch oder gibts einfach was besseres, als dieses Prinzip?

Verfasst: 26.06.2006 21:04
von uweb
Funktionieren wird es wohl, aber Du hast eben auf jeden Fall zwei Abfragen.
Besser wäre tatsächlich die zweite Variante und am besten wäre es dabei
die wahrscheinlichste bzw zeitkritischste Abfrage nach vorne zu setzen.
Was genau lief den daran nicht ?

Re: Taktische Frage: Spielstatus

Verfasst: 26.06.2006 21:04
von Kiffi
> bloß bei mir funktioniert das nich gleich...

dann hast Du einen Fehler in Deinen If-EndIf - Abfragen.

Da GameState nur einen Zustand annehmen kann, kann man hierfür
besser die von Dir bereits erwähnten If-ElseIf-EndIf - Abfragen
verwenden.

Eine weitere Möglichkeit: Select - Case - EndSelect

Beispiel:

Code: Alles auswählen

Select GameState
  Case Menu
    ;Zeichenoperationen und Schleifen für eine eventuelle SpriteCollission 
  Case InGame
    ;Zeichenoperationen und Schleifen für z.B. eine bewegbare Figur ausführen 
  Case ...
EndSelect
Ist meiner Meinung nach etwas übersichtlicher.

Aber wie gesagt: Wenn Du Dein bisheriges Kontrukt schon nicht in If-ElseIf
umschreiben kannst, dann hast Du einen momentanen Fehler in Deinem
Code.

Grüße ... Kiffi

Verfasst: 28.06.2006 19:54
von Vermilion
Fehler sind leider immer drin :mrgreen:
OK, das mit dem "Case" habe ich vergessen...
Also das mit dem übersichtlicher stimmt auf jeden Fall, wenn ich mal 4 Stunden oder so einen Quelltext* durchgeschrieben habe, dann erst einen Tag (oder mehr) später wieder rangehe, finde ich mich meißtens gar nicht mehr zurecht. :oops:

*d.h. Spiele, in denen ich diese konfuse Konstruktion verwende... :wink: