dionarap::Spielfeld Klassenreferenz

Zeichnet das Spielfeld. Mehr ...

Abgeleitet von javax::swing::JPanel.

Aufstellung aller Elemente

Öffentliche Methoden

 Spielfeld (int felderX, int felderY)
 Konstruktor der Klasse Spielfeld.
void updateStatus (GameStatus status)
 Teilt dem Spielfeld einen Status mit.
void setPawn (AbstractPawn pawn)
 Platziert ein ELement auf dem Spielfeld.
void cleanupSpielfeld ()
 Entfernt alle ELemente auf dem Spielfeld, sollte vor dem Neuzeichnen des Spielfelds aufgerufen werden.

Private Attribute

JLabel schachBrett [][]
 Array mit den Feldern, 1.
GameStatus status = GameStatus.game
 Aktueller Spiel-Status.

Statische private Attribute

static final long serialVersionUID = 5715276577498012282L
 Interne Versionsnummer - Serialisieren fuer Applets, Klassentausch.

Ausführliche Beschreibung

Zeichnet das Spielfeld.

Autor:
Thomas Merkel
Rainer Hihn
Version:
1.4

Definiert in Zeile 25 der Datei Spielfeld.java.


Beschreibung der Konstruktoren und Destruktoren

dionarap::Spielfeld::Spielfeld ( int  felderX,
int  felderY 
) [inline]

Konstruktor der Klasse Spielfeld.

Erwartet die Grš§e des Grids und die Grš§e der Felder in Pixel.

Parameter:
felderX horizontale Grš§e des Spielfeldes
felderY vertikale Grš§e des Spielfeldes

Definiert in Zeile 48 der Datei Spielfeld.java.

00048                                                      {          
00049                 JPanel panel = new JPanel( new GridLayout( felderX, felderY ) );
00050                 this.add(panel);
00051                 
00052                 this.schachBrett = new JLabel[felderX][felderY];
00053                                 
00054                 for( int reihe = 0; reihe < felderX; ++reihe ) {
00055                         for( int spalte = 0; spalte < felderY; ++spalte ) {
00056                                 schachBrett[reihe][spalte] = new JLabel();
00057                                 schachBrett[reihe][spalte].setPreferredSize(new Dimension(50,50));
00058                                 
00059                                 if( reihe % 2 == 0 ) { 
00060                                         if( spalte % 2 == 0 )
00061                                                 schachBrett[reihe][spalte].setBackground(Color.white);
00062                                         else
00063                                                 schachBrett[reihe][spalte].setBackground(Color.black);
00064                                 } else {
00065                                         if( spalte % 2 == 0 )
00066                                                 schachBrett[reihe][spalte].setBackground(Color.black);
00067                                         else
00068                                                 schachBrett[reihe][spalte].setBackground(Color.white);
00069                                 }
00070                                 
00071                                 schachBrett[reihe][spalte].setOpaque(true);
00072                                 panel.add( schachBrett[reihe][spalte] );
00073                         }
00074                 }
00075         }


Dokumentation der Elementfunktionen

void dionarap::Spielfeld::cleanupSpielfeld (  )  [inline]

Entfernt alle ELemente auf dem Spielfeld, sollte vor dem Neuzeichnen des Spielfelds aufgerufen werden.

Definiert in Zeile 133 der Datei Spielfeld.java.

00133                                        {
00134                 for (int y = 0; y < this.schachBrett.length; y++) {
00135                         for (int x = 0; x < this.schachBrett[y].length; x++) {
00136                                 JLabel feld = this.schachBrett[y][x];
00137                                 feld.setIcon(null);
00138                         }
00139                 }
00140         }

void dionarap::Spielfeld::setPawn ( AbstractPawn  pawn  )  [inline]

Platziert ein ELement auf dem Spielfeld.

Parameter:
pawn Figur/Element, welches platziert werden soll

Definiert in Zeile 97 der Datei Spielfeld.java.

00098         {
00099                 JLabel feld = this.schachBrett[pawn.getY()][pawn.getX()];
00100                 Artwork artwork = Artwork.getTheme();
00101                 
00102                 if (pawn instanceof Obstacle) { 
00103                         feld.setIcon(artwork.getObstacleIcon());
00104                 }
00105                 if (pawn instanceof Opponent) { 
00106                         feld.setIcon(artwork.getOpponentIcon());
00107                 }
00108                 if (pawn instanceof Ammo) { 
00109                         feld.setIcon(artwork.getAmmoIcon());
00110                 }
00111                 if (pawn instanceof Player) {
00112                         if (this.status == GameStatus.gameover) {
00113                                 feld.setIcon(artwork.getGameOverIcon());
00114                         } else if (this.status == GameStatus.gamewon) {
00115                                 feld.setIcon(artwork.getGameWonIcon());
00116                         } else {
00117                                 Player p = (Player)pawn;
00118                                 feld.setIcon(artwork.getPlayerIcon(p.getViewDirection()));
00119                         }
00120                 }
00121                 if (pawn instanceof Destruction) { 
00122                         feld.setIcon(artwork.getDestructionIcon());
00123                 }
00124                 if (pawn instanceof Vortex) { 
00125                         feld.setIcon(artwork.getVortexIcon());
00126                 }
00127         }

void dionarap::Spielfeld::updateStatus ( GameStatus  status  )  [inline]

Teilt dem Spielfeld einen Status mit.

Wenn der aktuelle Spielfeld-Status dem Status game entspricht, wird der neue Status uebernommen. Diese Einschraenkung ist noetig, da auch bei einem Thema-Wechsels die Methode aufgerufen wird.

Parameter:
status Neuer Status

Definiert in Zeile 85 der Datei Spielfeld.java.

00086         {
00087                 if (this.status == GameStatus.game) {
00088                         this.status = status;
00089                 }
00090         }


Dokumentation der Datenelemente

JLabel dionarap::Spielfeld::schachBrett[][] [private]

Array mit den Feldern, 1.

Index ist die Zeile, 2. Index ist die Spalte

Definiert in Zeile 35 der Datei Spielfeld.java.

final long dionarap::Spielfeld::serialVersionUID = 5715276577498012282L [static, private]

Interne Versionsnummer - Serialisieren fuer Applets, Klassentausch.

Definiert in Zeile 30 der Datei Spielfeld.java.

GameStatus dionarap::Spielfeld::status = GameStatus.game [private]

Aktueller Spiel-Status.

Definiert in Zeile 40 der Datei Spielfeld.java.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Aufzählungen
Erzeugt am Tue Jun 22 10:30:31 2010 für DionaRap von  doxygen 1.6.3