![]() |
Lehrer Nussbaumer - JAVA (eine kleine Einführung ;) |
|---|
GrundlagenGUIEingabeAusgabeApplikationenAppletsServletsBeispieleSpieleIDEsSkriptumJAVA-DOCS----------------- letzte Änderung: 09 December 2021 ----------------- Lehrer Nussbaumers Seite ... in Arbeit ... |
Einfache Spiele als Applets implementieren...In diesem Abschnitt sollen einfache Spiele in Form von Applets zur Verfügung stehen. Notwendige Grundlagen dazu sind:
Beispiel: moveIn einem einfachen Beispiel soll lediglich ein Cursor über den Bildschirm bewegt werden: Codeimport java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.Random;
public class move extends Applet {
private int k [][] = new int[50][30]; // Spielfeld, 50 x 30 Positionen
private int counter; // Zähler für Cursorbewegungen
private int xpos; // Cursorposition x-Koordinate
private int ypos; // Cursorposition y-Koordinate
private String mitteilung; // Ausgabe von Meldungen
private int spielstand; // Spielstand
// Konstruktor
public move() {
// Spielfeld-Array initialisieren
for (int i=0; i<50; i++)
for (int j=0; j<30; j++)
k[i][j] = 0;
// Alle anderen Klassenvariablen initialisieren
counter = 0;
xpos = 25;
ypos = 15;
mitteilung = "have a lot of fun";
spielstand = 0;
}
// Initialisierung des Applets
public void init() {
zufallszahl();
this.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(KeyEvent e) {
taste(e);
}
});
}
// Zufallszahl positionieren
public void zufallszahl() {
Random r = new Random();
int xposr;
int yposr;
xposr = r.nextInt(48)+1;
yposr = r.nextInt(28)+1;
k[xposr][yposr]=(r.nextInt(9)+1);
}
// KeyEvent abfragen
public void taste(KeyEvent e) {
switch (e.getKeyCode()) {
case 37: // Pfeiltaste nach links
xpos--;
break;
case 38: // Pfeiltaste nach oben
ypos--;
break;
case 39: // Pfeiltaste nach rechts
xpos++;
break;
case 40: // Pfreiltaste nach unten
ypos++;
break;
default:
}
counter++; // Zähler für Cursorbewegungen erhöhen
check(); // Spielgeschehen überorüfen
repaint(); // Spielfeld neu ausgeben
}
// Was ist beim Spielen passiert ?
public void check() {
if ((xpos < 0) || (ypos < 0) || (xpos >= 50) || (ypos >= 30)) ende();
else if (k[xpos][ypos] > 0) {
spielstand += k[xpos][ypos];
k[xpos][ypos] = 0;
zufallszahl();
}
}
// Spielende erreicht
public void ende() {
mitteilung = "und aus!";
for (int i=0; i<50; i++)
for (int j=0; j<30; j++)
k[i][j]=-1;
}
// Ausgabe
public void paint (Graphics bs) {
Color ly = new Color(255,255,245);
bs.setColor(ly);
bs.fillRect(0,0, 500, 300);
for (int i=0; i<50; i++) {
for (int j=0; j<30; j++) {
if (k[i][j]==-1) {
bs.setColor(Color.red);
bs.fillRect(i*10,j*10, 8,8);
}
if ((k[i][j]>0) && (k[i][j]<10)) {
bs.setColor(Color.blue);
bs.drawString(" " + k[i][j], i*10-4, j*10+9);
}
}
}
bs.setColor(Color.green);
bs.fillRect(xpos*10, ypos*10, 8,8);
bs.setColor(Color.black);
bs.drawString(mitteilung, 10, 330);
bs.drawString(counter + " Züge", 10,345);
bs.drawString("Spielstand: " + spielstand, 100, 345);
}
}
Und nun: Have a lot of fun ;-) |