Nur um sicher zu gehen das ich schon wieder was falsch gemacht hab, oder einfach grad nur zu doof bin ^^
Also das ist definitiv die falsche Einstellung! Jeder macht Fehler und lernt daraus was. Schließlich sind wir alle nur Menschen.
Was deinen Code betrifft. Naja... Also... Wenn ich gemein wäre, würde ich behaupten, dass du deine Hausaufgaben nicht richtig gemacht hast (--> Artikel zu OOP durchlesen
& verstehen). Da ich das aber nicht bin
würde ich das mal darauf zurückschließen, dass ich die OOP selber ewig nicht so richtig verstanden habe.
Schau dir dazu ruhig auch nochmal meine Klasse ('Car') an. Vielleicht verstehst dus dadurch besser.
Das Problem bei deinem Code ist das, da du nicht mit Objekten - oder nur sehr wenigen - arbeitest, ist es schwieriger da eine gewisse Programmlogik dahinter zu bekommen. Was du für Objekte brauchst sind folgende:
- FroggerWindow - erbt von der Klasse 'Applet' und implementiert 'KeyListener', um den Input abzufragen (Applet)
- Frog - repräsentiert einen Frosch
- Car - repräsentiert ein Auto
- CollisionDetector - wird überwachen, ob zwei Objekte kollidieren
- FroggerCore - ist der Thread, der die Objektpositionen aktuallisiert und den CollisionDetector fragt, ob der Frosch mit einem Auto kollidiert ist (optional, kann auch in FroggerWindow mit implementiert werden)
Die Objekte Frog und Car musst du - wie ich bereits schon einmal erwähnt habe - folgende Attribute geben:
Java:
private final int width = 50;
private final int height = 20;
private int x;
private int y;
Zudem implementierst du eine Methode 'getBounds()' in den beiden Objekten:
Java:
public Rectangle getBounds() {
return new Rectangle(x, y, width, height);
}
Hier mal ein Überblick, was die beiden Objekte Frog und Car an Methoden brauchen:
- moveLeft()
- moveUp()
- moveRight()
- moveDown()
- getBounds() : Rectangle
- update()
- draw(Graphics2D g)
Arbeite die paar Punkte ersteinmal ab. Und schau dir wiegesagt nochmal die OOP an (das ist wirklich das A und O bei dem Ganzen). Vielleicht findest du auch jemanden von deinen Kollegen, der dir das Prinzip näher bringen kann.
Wenn du das dann gemacht hast, reden wir weiter.
// EDIT: Hier hab eich noch einen sehr guten
Link zur OOP gefunden.
Gruß
Fabio