Class TetrisCanvas
java.lang.Object | +----java.awt.Component | +----java.awt.Canvas | +----TetrisCanvas
Das TetrisCanvas ist das wichtigste Objekt des Programms. In ihm laufen alle "Fäden" zusammen. Es kümmert sich um die Animation, nimmt die Tastenevents entgegen, verwaltet die Steine (nächster und aktueller Spielstein) und zählt die Punkte. Außerdem wird in ihm das Spiel dargestellt.
Kommentare an: chu@informatik.tu-chemnitz.de
- Version:
- 1.0, 11 Jan 97
- Author:
- Chris Hübsch
- TetrisCanvas(int, int, int)
- Erzeugt ein neues TetrisCanvas.
- keyDown(Event, int)
- Verwaltet die Tastaturereignisse.
- minimumSize()
- berechnet die minimale Größe
- neuerStein()
- Erzeugt den nächsten Stein.
- paint(Graphics)
- Zeichnet das Canvas neu.
- pause()
- Unterbricht die Ausführung des Spieles bzw.
- preferredSize()
- berechnet die bevorzugte Größe
- run()
- Hauptschleife des Spieles.
- start()
- Startet das Spiel.
- stop()
- Stoppt die Ausführung des Spieles
- update(Graphics)
TetrisCanvas
public TetrisCanvas(int Spalten, int Zeilen, int Ausdehnung)
- Erzeugt ein neues TetrisCanvas.
- Parameters:
- Spalten - Anzahl der Spalten von TetrisSteinchen
- Zeilen - Anzahl der Zeilen von TetrisSteinchen
- Ausdehnung - Breite/Höhe der TetrisSteinchen
- Zeilen - Anzahl der Zeilen von TetrisSteinchen
preferredSize
public Dimension preferredSize()
- berechnet die bevorzugte Größe
- Returns:
- Die Grösse, die das TetrisCanvas einimmt, wenn es ein Spalten x Zeilen von Steinchen aufnehmen soll.
- Overrides:
- preferredSize in class Component
- See Also:
- TetrisSteinchen
public Dimension minimumSize()
- berechnet die minimale Größe
- Returns:
- Die Grösse, die das TetrisCanvas einimmt, wenn es ein Spalten x Zeilen von Steinchen aufnehmen soll.
- Overrides:
- minimumSize in class Component
- See Also:
- TetrisSteinchen
public TetrisStein neuerStein()
- Erzeugt den nächsten Stein. Dabei wird berücksichtigt, ob der erweiterte Modus aktiviert ist.
- Returns:
- der erzeugte Stein
public void update(Graphics g)paint
public void paint(Graphics g)
- Zeichnet das Canvas neu. Dabei wird eine Doppelpufferung benutzt.
public void run()
- Hauptschleife des Spieles. Es läuft eine Endlosschleife, bis der Thread unterbrochen wird. Dabei wird der Fokus auf angefordert, damit die Tastatureingaben auch immer an
dieses Objekt gesendet werden.
grober Ablauf:
- Eine Pause machen: Dauer: time.
- Wenn aktueller Stein nach unten kann, dann
- aktuellen Stein löchen
- Stein nach unten bewegen
- Stein neu zeichnen
- sonst
- Stein in TetrisFeld übertragen
- Punkte erhöhen
- Wenn der Stein noch in der obersten Zeile ist, dann Spiel beenden
- Prüfen, ob eine Zeile voll ist, wenn ja
- Zeile entfernen
- Punkte um Bonus erhöhen
- Spielgeschwindigkeit (Wartezeit time) an Punkte anpassen
- nächsten Stein festlegen
- Spielfeld neu zeichnen
public boolean keyDown(Event e, int key)
- Verwaltet die Tastaturereignisse. Reagiert entsprechend der Tasten: nach unten, links, rechts und drehen.
public void start()
- Startet das Spiel. Dabei werden alle nötigen Initialisierungen für ein neues Spiel vorgenommen.
public void stop()
- Stoppt die Ausführung des Spieles
public void pause()
- Unterbricht die Ausführung des Spieles bzw. setzt ein unterbrochenes Spiel fort.