Die Hauptschleife

Wie bereits vorhin im Menue brauchen wir auch wieder eine dauerhaft laufende Schleife für das Spiel. Diese Schleife muss nun was machen? Denkt nen Augenblick drüber nach, bevor ihr weiter lest. Das ist nötig:

  1. Die Tastatureingaben annehmen, und dementsprechend den Zeiger bewegen.
  2. Die Züge setzen, wenn sie gedrückt wurden
  3. Sämtliche Grafiken, die angezeigt werden müssen anzeigen
  4. Prüfen, ob jemand gewonnen hat.

Der Code

void MainGame::StartGame(int Players){
    kbd::tasten_leeren();
 
    int k = 0;
    while(true){
        if(kbd::Taste_gedrueckt_char_menue("NACH-LINKS")){
            k--;
            if(k < 0){
                k = 6;
            }
        }
 
        if(kbd::Taste_gedrueckt_char_menue("NACH-RECHTS")){
            k++;
            if(k >= 7){
                k = 0;
            }
        }
 
        if(kbd::Taste_gedrueckt_char_menue("EINGABE")){
            zugSetzen(k);
        }
 
        if(kbd::Taste_gedrueckt_char_menue("ESC")){
            reset();
            return;
        }
 
        Pointer->PositionSetzen(FeldPic->get_x() + k*80 + ((80 - Pointer->get_Bild()->w)/2), FeldPic->get_y() - 70);
        GameHintergrund->Anzeigen();
        FeldPic->Anzeigen(true);
        Pointer->Anzeigen(true);
        Player[PlayersTurn]->Anzeigen();
        Player[(PlayersTurn + 1)%2]->Anzeigen(true);
 
        blit(Ziel, screen, 0,0,0,0, SCREEN_W, SCREEN_H);
        _sleep(50);
 
        if(Gewinner != 3){
            SiegerAusgeben();
            return;
        }
    }
}

Die ganzen Ifs sollten keiner Erklärung bedürfen, das ist genau das selbe wie vorhin im Menue. Im Endeffekt sollte hier alles selbsterklärend sein :-D Was wirklich interessant ist sind die Methoden zugSetzen(), reset() und Sieger ausgeben. Und genau denen werden wir uns jetzt im nächsten schritt widmen.

zurück Weiter zu zugSetzen()