de.korelstar.tetris
Class Spielfeld

java.lang.Object
  extended byjava.awt.Component
      extended byde.korelstar.tetris.Spielfeld
All Implemented Interfaces:
java.util.EventListener, java.awt.image.ImageObserver, java.awt.event.KeyListener, java.awt.MenuContainer, java.lang.Runnable, java.io.Serializable

public class Spielfeld
extends java.awt.Component
implements java.lang.Runnable, java.awt.event.KeyListener

Das komplette Spielfeld als AWT-Komponente.

Author:
Kristof Hamann
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  Stein curStein
          Der aktuelle Stein, der gesteuert wird.
private  boolean fast_down
          Wenn der Spieler die Leertaste drückt, wird's hier true und der Stein schießt nach unten
static int HEIGHT
          Definiert die Höhe des Spielfeldes.
static int SIZE
          Definiert die Größe eines Kästchens in Pixel.
private  int speed
          Die Geschwindigkeit des Spielablaufes.
private  java.awt.Color[][] spielfeld
          Das Spielfeld wird als zweidimensionales Array repräsentiert.
private  java.lang.Thread thread
          Unser Thread, der den Spielablauf regelt.
static int WIDTH
          Definiert die Breite des Spielfelden.
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, PROPERTIES, SOMEBITS
 
Constructor Summary
Spielfeld()
          Standard-Konstruktor.
 
Method Summary
private  void checkLines()
          Prüft, ob eine Reihe vollgemacht wurde und löscht diese.
private  void drawFeld(java.awt.Graphics g, java.awt.Color farbe, int height, int x, int y)
           
private  void drawFeld(java.awt.Graphics g, java.awt.Color farbe, int height, java.awt.Point punkt)
          Zeichnet ein Feld in Form eines Quadrates an die angegebene Position.
 java.awt.Dimension getMaximumSize()
          Maximum-Größe dieser Komponente fuer Layout-Manager.
 java.awt.Dimension getMinimumSize()
          Minimum-Größe dieser Komponente fuer Layout-Manager.
 java.awt.Color getPos(int x, int y)
          Gibt Inhalt eines Punktes im Spielfeld zurück.
 java.awt.Color getPos(java.awt.Point point)
          Gibt Inhalt eines Punktes im Spielfeld zurück.
 java.awt.Dimension getPreferredSize()
          Bevorzugte-Größe dieser Komponente fuer Layout-Manager.
 void keyPressed(java.awt.event.KeyEvent e)
           
 void keyReleased(java.awt.event.KeyEvent e)
           
 void keyTyped(java.awt.event.KeyEvent e)
           
 void paint(java.awt.Graphics g)
          Wird automatisch aufgerufen, wenn das Spielfeld neu gezeichnet werden muss.
private  void paintStein(java.awt.Graphics g)
          Malt den aktuellen Stein neu.
 void repaintFull()
          Malt das komplette Spielfeld neu.
 void repaintStein()
          Malt nur den aktuellen Stein neu.
 void run()
          Thread, der die Spielsteine nach unten bewegt
private  void saveStein(Stein curStein)
          Speichert einen Stein im Spielfeld fest.
 void setSpeed(int speed)
          Ändert die Geschwidigkeit des Spieles.
 void startGame()
          Startet ein neues Spiel auf einem leeren Brett.
 void stopGame()
          Stoppt das aktuelle Spiel. z.B. bei GameOver.
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

WIDTH

public static final int WIDTH
Definiert die Breite des Spielfelden.

See Also:
Constant Field Values

HEIGHT

public static final int HEIGHT
Definiert die Höhe des Spielfeldes.

See Also:
Constant Field Values

SIZE

public static final int SIZE
Definiert die Größe eines Kästchens in Pixel.

See Also:
Constant Field Values

spielfeld

private java.awt.Color[][] spielfeld
Das Spielfeld wird als zweidimensionales Array repräsentiert. Abgeruft wird es mit spielfeld[x][y].


curStein

private Stein curStein
Der aktuelle Stein, der gesteuert wird.


thread

private java.lang.Thread thread
Unser Thread, der den Spielablauf regelt.


speed

private int speed
Die Geschwindigkeit des Spielablaufes. In Milisekunden wird angegeben, wie lange gewartet wird bis der Stein ein Feld weiter runter geht


fast_down

private boolean fast_down
Wenn der Spieler die Leertaste drückt, wird's hier true und der Stein schießt nach unten

Constructor Detail

Spielfeld

public Spielfeld()
Standard-Konstruktor.

Method Detail

getMaximumSize

public java.awt.Dimension getMaximumSize()
Maximum-Größe dieser Komponente fuer Layout-Manager.


getMinimumSize

public java.awt.Dimension getMinimumSize()
Minimum-Größe dieser Komponente fuer Layout-Manager.


getPreferredSize

public java.awt.Dimension getPreferredSize()
Bevorzugte-Größe dieser Komponente fuer Layout-Manager.


setSpeed

public void setSpeed(int speed)
Ändert die Geschwidigkeit des Spieles.

Parameters:
speed - Zeit in Milisekunden, die der Thread wartet, bis der Stein ein Feld weiter nach unten wandert.

getPos

public java.awt.Color getPos(java.awt.Point point)
                      throws java.lang.IndexOutOfBoundsException
Gibt Inhalt eines Punktes im Spielfeld zurück.

Parameters:
point - Punkt im Spielfeld
Returns:
Status-Wert des Feldes
Throws:
java.lang.IndexOutOfBoundsException - Wenn die Position außerhalb des Spielfeldes liegt

getPos

public java.awt.Color getPos(int x,
                             int y)
                      throws java.lang.IndexOutOfBoundsException
Gibt Inhalt eines Punktes im Spielfeld zurück.

Parameters:
x - Position von links im Spielfeld
y - Position von unten im Spielfeld
Returns:
Status-Wert des Feldes
Throws:
java.lang.IndexOutOfBoundsException - Wenn die Position außerhalb des Spielfeldes liegt

saveStein

private void saveStein(Stein curStein)
Speichert einen Stein im Spielfeld fest.


checkLines

private void checkLines()
Prüft, ob eine Reihe vollgemacht wurde und löscht diese.


repaintFull

public void repaintFull()
Malt das komplette Spielfeld neu.


repaintStein

public void repaintStein()
Malt nur den aktuellen Stein neu.


paint

public void paint(java.awt.Graphics g)
Wird automatisch aufgerufen, wenn das Spielfeld neu gezeichnet werden muss.


paintStein

private void paintStein(java.awt.Graphics g)
Malt den aktuellen Stein neu.


drawFeld

private void drawFeld(java.awt.Graphics g,
                      java.awt.Color farbe,
                      int height,
                      java.awt.Point punkt)
Zeichnet ein Feld in Form eines Quadrates an die angegebene Position.


drawFeld

private void drawFeld(java.awt.Graphics g,
                      java.awt.Color farbe,
                      int height,
                      int x,
                      int y)

startGame

public void startGame()
Startet ein neues Spiel auf einem leeren Brett.


stopGame

public void stopGame()
Stoppt das aktuelle Spiel. z.B. bei GameOver.


run

public void run()
Thread, der die Spielsteine nach unten bewegt

Specified by:
run in interface java.lang.Runnable

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
Specified by:
keyTyped in interface java.awt.event.KeyListener

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
Specified by:
keyReleased in interface java.awt.event.KeyListener