Steine in freiem Fall
Teil 5: VB: Tetris programmieren
- VB: Tetris programmieren
- Teil 2: VB: Tetris programmieren
- Teil 3: VB: Tetris programmieren
- Teil 4: VB: Tetris programmieren
- Teil 5: VB: Tetris programmieren
- Teil 6: VB: Tetris programmieren
- Teil 7: VB: Tetris programmieren
- Teil 8: VB: Tetris programmieren
Nach der Vorarbeit ist das Drehen und Verschieben eines Steins fast Formsache, wie die Version VBXtris03 zeigt. Mit den Cursortasten steuern Sie den Spielstein. Für die Tastatursteuerung ist die Ereignisroutine KeyDown in VBXtris die richtige Wahl. Abhängig vom KeyCode verzweigt das Programm in die betreffende Methode des Spielsteins. Wieder verwendet die Verschiebe- Routine das Schema laut Plan (PAP). Bei der Performance kann je nach Rechnergeschwindigkeit der Grafikaufbau der OutSpielfeld()- Routine quälend langsam sein. Hier hilft eine alte Weisheit weiter: Gib nur das auf dem Bildschirm aus, was sich tatsächlich ändert!

Der Trick dabei: Sie legen in der Spielfeld- Klasse einfach ein Schatten-Array des spf-Arrays als spf_old an. Dort legen Sie jeweils das Spielfeld ab, das gerade auf dem Bildschirm sichtbar ist. Die OutSpielfeld-Routine prüft das aktuelle spf Array gegen das spf_old Array und gibt nur dann eine Grafik aus, wenn ein Unterschied besteht. Damit das Spiel fließt, muss das Programm erkennen, ob ein neuer Stein fällig ist. Das ist der Fall, wenn die Fallen-Routine eine Regel verletzt.
Diese Regelverletzung teilen Sie der Klasse Spielfeld mit, indem ein Flag neuer_stein der Klasse Spielfeld auf True gesetzt wird. Stellt die Methode TesteNeuerStein() fest, dass neuer_ stein auf True gesetzt ist, wird ein neuer Spielstein erzeugt und neuer_stein auf False gesetzt. Danach können Sie bald schon Tetris spielen. Was wesentlich fehlt, ist das Entfernen der Zeilen, sobald eine Zeile mit Tetris- Steinen komplett ist.