CHU
in Chemnitz
Willkommen auf der Webseite von Chris Hübsch
Sie befinden sich hier: Startseite > Programmieren > Java >
Class TetrisCanvas

Class TetrisCanvas

java.lang.Object
   |
   +----java.awt.Component
           |
           +----java.awt.Canvas
                   |
                   +----TetrisCanvas

class TetrisCanvas
extends Canvas
implements Runnable
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

Constructor Index

 o TetrisCanvas(int, int, int)
Erzeugt ein neues TetrisCanvas.

Method Index

 o keyDown(Event, int)
Verwaltet die Tastaturereignisse.
 o minimumSize()
berechnet die minimale Größe
 o neuerStein()
Erzeugt den nächsten Stein.
 o paint(Graphics)
Zeichnet das Canvas neu.
 o pause()
Unterbricht die Ausführung des Spieles bzw.
 o preferredSize()
berechnet die bevorzugte Größe
 o run()
Hauptschleife des Spieles.
 o start()
Startet das Spiel.
 o stop()
Stoppt die Ausführung des Spieles
 o update(Graphics)

Constructors

 o 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

Methods

 o 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
 o minimumSize
  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
 o neuerStein
  public TetrisStein neuerStein()
Erzeugt den nächsten Stein. Dabei wird berücksichtigt, ob der erweiterte Modus aktiviert ist.
Returns:
der erzeugte Stein
 o update
  public void update(Graphics g)
Overrides:
update in class Component
 o paint
  public void paint(Graphics g)
Zeichnet das Canvas neu. Dabei wird eine Doppelpufferung benutzt.
Parameters:
g - das Grafikobjekt, in das gezeichnet wird.
Overrides:
paint in class Canvas
 o run
  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
 o keyDown
  public boolean keyDown(Event e,
                         int key)
Verwaltet die Tastaturereignisse. Reagiert entsprechend der Tasten: nach unten, links, rechts und drehen.
Parameters:
e - Ereignis, das behandelt wird
key - Nummer der Taste
Overrides:
keyDown in class Component
 o start
  public void start()
Startet das Spiel. Dabei werden alle nötigen Initialisierungen für ein neues Spiel vorgenommen.
 o stop
  public void stop()
Stoppt die Ausführung des Spieles
 o pause
  public void pause()
Unterbricht die Ausführung des Spieles bzw. setzt ein unterbrochenes Spiel fort.