Steine in freiem Fall
Teil 2: 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
Damit Sie Spielsteine möglichst reibungslos implementieren, programmieren Sie objektorientiert. Zunächst legen Sie eine neue Klasse Spielstein im Projekt an. Im ersten Schritt gestalten Sie das Datenmodell der Spielsteine so, dass sich diese leicht drehen lassen. Die Grafik zeigt als Beispiel den quadratischen Bereich für den Spielstein T samt dem benötigten Programmcode. Die 0 repräsentiert ein leeres Feld, 2 die Farbe Braun.

Die Mitte des quadratischen Bereichs eines Spielsteines ist gleichzeitig das Drehzentrum. Beachten Sie, dass das Kästchen des Spielsteins, welches bei der Drehung am gleichen Platz bleibt, beim Spielstein T das mittlere der Dreier-Reihe ist und nicht etwa das Kästchen der dritten Zeile. Daher muss der Spielstein in der zweiten Zeile liegen, um das Drehzentrum richtig festzulegen. Wollen Sie Spielsteine mit abweichenden Formen einbauen, so ändern Sie hier einfach die Daten, ohne dass das Programm falsch läuft. Bleiben Sie nur konstant beim Schema 2x2, 3x3 und 4x4. Sind alle Spielsteine erfasst, programmieren Sie die Drehung eines Spielsteins. Hierbei kann man es sich unnötig wie mit dem Drehen beliebiger Matrizen schwer machen oder nach dem Motto keep it simple stupid (KISS) eine Routine einbauen, die mit einem einfachen Datenringtausch einen Spielstein dreht.
Um diese Ringtausch-Routine zu implementieren, achten Sie darauf, die Daten mit einem Call by Reference (ByRef) aufzurufen! Ein normaler Call by Value (ByVal) - also ein Aufruf mitWert-Kopie - würde in der Ringtausch- Routine lediglich die Daten lokal, d.h. in der Routine selbst verändern, jedoch nicht beim Aufrufer Drehen3x3 bzw. Drehen4x4. Den Code, um einen 3x3 Stein zu drehen, zeigt das Fragment.

Für die Spielsteine im Format 4x4 dient die ähnliche Routine Drehen4x4, die mit vier Ringtausch-Aufrufen einen Spielstein vollständig um 90 Grad dreht. Damit die Spielstein- Daten bei einer Neuinitialisierung unverändert zur Verfügung stehen, muss man die Daten in einen gesonderten Arbeitsspeicher- Bereich kopieren. Solche Initialisierungen programmieren Sie am besten im Konstruktor New der Klasse Spielstein. Damit ist die Klasse Spielstein für die Version VBXtris01 abgeschlossen.