Taktische Frage: Spielstatus

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Taktische Frage: Spielstatus

Beitrag 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?
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag 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 ?
Zuletzt geändert von uweb am 26.06.2006 21:05, insgesamt 1-mal geändert.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Taktische Frage: Spielstatus

Beitrag 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
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag 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:
Antworten