GLB:Grundgerüst

Aus PandoraWiki

Wechseln zu: Navigation, Suche

Im ersten Teil beginnen wir mit dem Programmrumpf:



//=============================================================================
//  T Y P E S
//=============================================================================
 
 
//=============================================================================
//  C O N S T A N T S
//=============================================================================
 
// application states
GLOBAL  AS_INTRO%       =   1
GLOBAL  AS_MENU%        =   2
GLOBAL  AS_LEVEL00%     =   10
GLOBAL  AS_EXIT%        =   255
// button map
GLOBAL  BUTTON_RIGHT%   =   205
GLOBAL  BUTTON_LEFT%    =   203
GLOBAL  BUTTON_DOWN%    =   208
GLOBAL  BUTTON_UP%      =   200
GLOBAL  BUTTON_A%       =   44
GLOBAL  BUTTON_B%       =   45
GLOBAL  BUTTON_R%       =   54
GLOBAL  BUTTON_START%   =   28
GLOBAL  BUTTON_VOLI%    =   201
GLOBAL  BUTTON_VOLD%    =   209
 
 
//=============================================================================
//  V A R I A B L E S
//=============================================================================
 
// application
GLOBAL  AppState%       =   AS_INTRO
 
LOCAL   done            =   FALSE
 
 
//-----------------------------------------------------------------------------
//  I N I T
//-----------------------------------------------------------------------------
    DRAWRECT 0,0,320,240,0
    SHOWSCREEN
    DRAWRECT 0,0,320,240,0
    SHOWSCREEN
 
//-----------------------------------------------------------------------------
//  M A I N L O O P
//-----------------------------------------------------------------------------
    WHILE done=FALSE
        SELECT AppState
            CASE AS_INTRO   ; AppState=RunIntro()
            CASE AS_MENU    ; AppState=RunMenu()
            CASE AS_LEVEL00 ; AppState=RunLevel00()
            CASE AS_EXIT    ; done=TRUE
            DEFAULT         ; done=TRUE
        ENDSELECT
    WEND
//-----------------------------------------------------------------------------
//  D E I N I T
//-----------------------------------------------------------------------------
    DRAWRECT 0,0,320,240,0
    SHOWSCREEN
    DRAWRECT 0,0,320,240,0
    SHOWSCREEN

Als erstes machen wir Platz für Type-Definitionen welche wir später hier einsetzen werden. Anschließend kommen die Konstanten, welche wir im Programm immer GROß schreiben werden. Mit AS_INTRO etc. beschreiben wir den jeweiligen Status des Programms (AS = application state). Danach folgen die Konstanten für die Tastenbelegung welche wir später noch benötigen werden. Jetzt folgen die Variablen, wobei wir globale mit großem und lokale mit kleinem Anfangsbuchstaben schreiben. Die globale Variable AppState initialisieren wir mit AS_INTRO da wir unser Programm mit dem INTRO starten wollen. Dann löschen wir den Framebuffer.

Nun kommt die Hauptschleife des Programms: Wenn innerhalb der Schleife

   WHILE done=FALSE
     ...
   WEND

der Wert der Variable done auf TRUE gesetzt wird, löschen wir wieder den Framebuffer und das Programm endet.

Im darauffolgenden Code-Abschnitt überprüfen wir das auszuführende Programmmodul:

        SELECT AppState
            CASE AS_INTRO   ; AppState=RunIntro()
            CASE AS_MENU    ; AppState=RunMenu()
            CASE AS_LEVEL00 ; AppState=RunLevel00()
            CASE AS_EXIT    ; done=TRUE
            DEFAULT         ; done=TRUE
        ENDSELECT

Da wir den Wert von AppState auf AS_INTRO gesetzt haben wird natürlich das Modul RunIntro() aufgerufen. Die verschiedenen Module sind Funktionen welche wiederum einen Wert zurückgeben, der dann sofort wieder in der Variable AppState gespeichert wird. Beim nächsten Schleifendurchlauf wird diese erneut abgefragt.

Im nächsten Kapitel werden wir uns mit Intros und Menüs beschäftigen.