Hallo Ich soll in der Schule ein Ufo-Spiel programmieren, doch ich komme nicht weiter mit der Bewegungänderung. Zurzeit bewget sich das Ufo nur gerade aus.Doch jetzt soll sich das Ufo auf Tastaturbefehl nach links(a) und rechts(d) bewegen.Hinterher kommen noch andere Klassen hinzu, also nicht wundern,wieso da noch Punkteanzeige etc. steht. Kann mir einer sagen warum sich das Ufo nicht nach rechts oder links bewegt.Hier der Code:
Spielfeld:
Ufo:
Spielfeld:
Java:
import sum.kern.*;
/**
* @author Daniel Janson
* @version 1.0 beta
*/
public class Spielfeld {
// Objekte
Bildschirm derBildschirm;
Buntstift meinBuntstift;
Ufo meinUfo;
Tastatur dieTastatur;
Tastatur dieTastatur2;
// Konstruktor
public Spielfeld() {
derBildschirm = new Bildschirm(640,480);
meinBuntstift = new Buntstift();
dieTastatur = new Tastatur();
dieTastatur2 = new Tastatur();
meinUfo = new Ufo(derBildschirm);
}
// Dienste
public void fuehreAus() {
// Aktionsteil
meinUfo.zeichneUfo();
while(true) {
meinUfo.radiereUfo();
meinUfo.bewegeUm(0.001);
meinUfo.zeichneUfo();
}
}
public void bewege() {
if(dieTastatur.wurdeGedrueckt()) {
if(dieTastatur.zeichen()=='a'|| dieTastatur.zeichen() == 'a') {
meinUfo.dreheLinks();
} else if (dieTastatur.zeichen()=='d' || dieTastatur.zeichen() == 'd') {
{
meinUfo.dreheRechts();
}
}
}
}
}
Ufo:
Java:
import sum.kern.*;
/**
* @author Daniel Janson
* @version 1.0 Beta
*/
public class Ufo {
// Objekte
Bildschirm derBildschirm;
Buntstift meinBuntstift;
Tastatur meineTastatur;
double radius;
// Konstruktor
public Ufo(Bildschirm derBildschirm) {
this.derBildschirm = derBildschirm;
meinBuntstift = new Buntstift();
meinBuntstift.bewegeBis(100,derBildschirm.hoehe()/2);
}
// Dienste
public void zeichneViereck() {
meinBuntstift.bewegeUm(20);
meinBuntstift.dreheUm(90);
meinBuntstift.bewegeUm(20);
meinBuntstift.dreheUm(180);
meinBuntstift.bewegeUm(20);
meinBuntstift.dreheUm(270);
meinBuntstift.bewegeUm(20);
}
public void zeichneUfo() {
meinBuntstift.runter();
meinBuntstift.setzeFarbe(234);
meinBuntstift.setzeFuellmuster(5);
meinBuntstift.zeichneKreis(25);
}
/**
* Radiert das Ufo.
*/
public void radiereUfo() {
meinBuntstift.radiere();
this.zeichneUfo();
meinBuntstift.normal();
}
/**
* Bewegt das Ufo um angegebene Einheiten.
* @param move Bezeichnet die Einheiten, um die der Buntstift bewegt wird.
*/
public void bewegeUm(double move) {
meinBuntstift.bewegeUm(move);
}
/**
* Bewegt den Buntstift bis zu einer Position.
* @param xPos Bezeichnet die horizontale Koordinate.
* @param yPos Bezeichnet die vertikale Koordinate.
*/
public void bewegeBis(double xPos, double yPos) {
meinBuntstift.bewegeBis(xPos,yPos);
}
public void dreheLinks() {
meinBuntstift.dreheUm(90);
meinBuntstift.bewegeUm(0.001);
}
public void dreheRechts() {
meinBuntstift.dreheUm(-90);
meinBuntstift.bewegeUm(0.001);
}
}
Zuletzt bearbeitet von einem Moderator: