m3x
Ensign
- Registriert
- Aug. 2005
- Beiträge
- 218
Ich habe das Spiel Snake nachprogrammiert. Leider funktioniert es nur unter AWT, nicht aber unter Swing.
Die schlange besteht aus einzelnen rechtecken, deren Anfangspositionen in einem Array gespeichert sind.
Nach jedem Schritt werden diese Angaben um die Länge eines Rechtecks weiter "geschoben".
-> unter AWT bewegt sich die Schlange, unter Swing wird sie einfach nur länger, bzw. sie zieht sich selbst in die länge
Die schlange besteht aus einzelnen rechtecken, deren Anfangspositionen in einem Array gespeichert sind.
Nach jedem Schritt werden diese Angaben um die Länge eines Rechtecks weiter "geschoben".
-> unter AWT bewegt sich die Schlange, unter Swing wird sie einfach nur länger, bzw. sie zieht sich selbst in die länge
Code:
public static void main(String[] args) {
Game window = new Game();
window.setVisible(true);
for (int i = 0; i < 6; i++) { //Initzialisieren der Grundschlange
//Startpunkte der Rechtecke
pointx[i] = tmp; //tmp = 70
pointy[i] = 80;
//Bewegungsangaben
movex[i] = 10;
movey[i] = 0;
tmp -= 10;
}
for (int i = 5; i < 200; i++) {
pointx[i] = 0;
pointy[i] = 0;
}
}
Code:
public void paint (Graphics g) {
g.setColor(Color.BLUE);
for (int i = 0; i < 200; i++) {
if ((pointx[i] != 0) || (pointy[i] != 0)) {
g.fillRect(pointx[i], pointy[i], 10, 10);
pointx[i] += movex[i];
pointy[i] += movey[i];
}
}
g.setColor(Color.black);
for (int i = 199; i >= 1; i--) {
if ((movex[i] != 0) || (movey[i] != 0)) {
movex[i] = movex[i - 1];
movey[i] = movey[i - 1];
}
}
try {
Thread.sleep(speed);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.repaint();
}