Zeichnet das Spielfeld. Mehr ...
Abgeleitet von javax::swing::JPanel.
Ö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. |
Zeichnet das Spielfeld.
Definiert in Zeile 25 der Datei Spielfeld.java.
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.
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 }
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.
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.
status | Neuer Status |
Definiert in Zeile 85 der Datei Spielfeld.java.
00086 { 00087 if (this.status == GameStatus.game) { 00088 this.status = status; 00089 } 00090 }
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.