Hier schon mal der Anfang, ich muss mich für die Details nochmal in ein paar Dingen wieder einlesen:
Code:
// Benoetigte Pake inkludieren
import java.awt.event.*;
import java.awt.Graphics;
import java.lang.Math;
// Definition der Hauptklasse (später auch Name des Kompilats -> MoueTrack.class)
public class MouseTrack extends java.applet.Applet implements MouseListener, MouseMotionListener {
// zwei Integer-Variablen
int mx, my;
int onaroll;
// Initieren des Konstruktors fuer die Hauptklasse
public void init() {
onaroll = 0;
setSize(500, 500);
addMouseListener(this);
addMouseMotionListener(this);
}
// Destruktor (das extake Gegenteil des Konstruktors add <-> remove)
public void destroy() {
removeMouseListener(this);
removeMouseMotionListener(this);
}
// Funktion paint() -> Zeichnet irgendwelche Rechtecke, muesste man mal kompilieren, um zu sehen, was da rauskommt :)
public void paint(Graphics g) {
g.drawRect(0, 0, getSize().width - 1, getSize().height - 1);
mx = (int)(Math.random()*1000) % (getSize().width - (getSize().width/10));
my = (int)(Math.random()*1000) % (getSize().height - (getSize().height/10));
g.drawRect(mx, my, (getSize().width/10) - 1, (getSize().height/10) - 1);
}
// *********************************************
// Mausemethoden
// Alle folgenden Funktionen dienen der Kollisionsabfrage
// Es werden die Position sowie die Tasten abgefragt
// *********************************************
public void mouseDragged(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) {
e.consume();
if((e.getX() % 3 == 0) && (e.getY() % 3 == 0))
repaint();
}
// Linksklick
public void mousePressed(MouseEvent e) {
int x = e.getX();
int y = e.getY();
e.consume();
requestFocus();
if((mx < x && x < mx+getSize().width/10-1) && (my < y && y < my+getSize().height/10-1)) {
if(onaroll > 0) {
// Mit diesem Switch werden je
// nach Mausaktion Sounds ausgegeben
switch(onaroll%4) {
case 0:
play(getCodeBase(), "sounds/tiptoe.thru.the.tulips.au");
break;
case 1:
play(getCodeBase(), "sounds/danger,danger...!.au");
break;
case 2:
play(getCodeBase(), "sounds/adapt-or-die.au");
break;
case 3:
play(getCodeBase(), "sounds/cannot.be.completed.au");
break;
}
onaroll++;
// Punktezahl ermiteln und
// je nach Stand Textausgabe
if(onaroll > 5)
getAppletContext().showStatus("You're on your way to THE HALL OF FAME:"
+ onaroll + "Hits!");
else
getAppletContext().showStatus("YOU'RE ON A ROLL:" + onaroll + "Hits!");
}
else {
getAppletContext().showStatus("HIT IT AGAIN! AGAIN!");
play(getCodeBase(), "sounds/that.hurts.au");
onaroll = 1;
}
}
else {
getAppletContext().showStatus("You hit nothing at (" + x + ", " + y + "), exactly\n");
play(getCodeBase(), "sounds/thin.bell.au");
onaroll = 0;
}
repaint();
}
// Klick beendet
public void mouseReleased(MouseEvent e) {
}
// Wenn Maus innerhalb eines bestimmten
//Bereichs Spielflaeche neu zeichnen
public void mouseEntered(MouseEvent e) {
repaint();
}
// Wenn Maus ausserhalb eines bestimmten
//Bereichs Spielflaeche neu zeichnen
public void mouseExited(MouseEvent e) {
onaroll = 0;
repaint();
}
public void mouseClicked(MouseEvent e) {
}
// Keyboard-Abfragen aus dem Inputstream (?)
public void keyDown(int key) {
requestFocus();
onaroll = 0;
play(getCodeBase(), "sounds/ip.au");
}
// Das Teil generiert die Info-Box des Applets
public String getAppletInfo() {
return "Title: JumpingBox\nAuthor: Anonymous";
}
}