Hallo,
Ich muss für mein Projekt in der Schule einen Staubsauger programmieren, welcher Chips einsaugt. Nun habe ich schon die Chips,das Zimmer und den Staubsauger als klasse geschrieben und es kommt irgendwie bei this.staubsauger.bewegen(); eine Nullpointerexception, wobei ich nicht wüsste woher (den staubsauger gibt es ja schon, hab ich im konstruktor initialisiert). schon vorgegeben haben wir die Klasse BILD,SPIEL und RECHTECK
Hier meine Code von ZIMMER:
STAUBSAUGER:
und der/die Chip(s):
Ich muss für mein Projekt in der Schule einen Staubsauger programmieren, welcher Chips einsaugt. Nun habe ich schon die Chips,das Zimmer und den Staubsauger als klasse geschrieben und es kommt irgendwie bei this.staubsauger.bewegen(); eine Nullpointerexception, wobei ich nicht wüsste woher (den staubsauger gibt es ja schon, hab ich im konstruktor initialisiert). schon vorgegeben haben wir die Klasse BILD,SPIEL und RECHTECK
Hier meine Code von ZIMMER:
Java:
public class ZIMMER extends SPIEL
{
private CHIP chip_1;
private CHIP chip_2;
private CHIP chip_3;
private RECHTECK randL;
private RECHTECK randO;
private RECHTECK randR;
private RECHTECK randU;
private STAUBSAUGER staubsauger;
public ZIMMER()
{
super(800, 600, true, true, false);
hintergrundgrafikSetzen("Boden.gif");
this.chip_1 = new CHIP(zufallszahlVonBis(0,500),zufallszahlVonBis(0,500));
this.chip_2 = new CHIP(zufallszahlVonBis(0,500),zufallszahlVonBis(0,500));
this.chip_3 = new CHIP(zufallszahlVonBis(0,500),zufallszahlVonBis(0,500));
this.staubsauger = new STAUBSAUGER();
this.randL = new RECHTECK(20,600);
this.randL.setzeMittelpunkt(0,300);
this.randO = new RECHTECK(800,20);
this.randO.setzeMittelpunkt(400,0);
this.randR = new RECHTECK(20,600);
this.randR.setzeMittelpunkt(800,300);
this.randU = new RECHTECK(800,20);
this.randU.setzeMittelpunkt(400,600);
}
@Override
public void tick()
{
this.staubsauger.bewegen();
}
}
STAUBSAUGER:
Java:
public class STAUBSAUGER extends BILD
{
private double deltaX;
private double deltaY;
private int geschwindigkeit;
public STAUBSAUGER(int x, int y)
{
super(x,y, "Robot.gif" );
this.deltaX = 10;
this.deltaY = 0;
this.geschwindigkeit = 10;
}
public STAUBSAUGER()
{
super(400,300, "Robot.gif" );
this.deltaX = 10;
this.deltaY = 0;
this.geschwindigkeit = 10;
}
public void berechneSchrittweitenNeu()
{
this.deltaX = this.geschwindigkeit * cos_Drehwinkel();
this.deltaY = this.geschwindigkeit * sin_Drehwinkel();
}
@Override
public void drehenUm(int winkel)
{
super.drehenUm(winkel);
berechneSchrittweitenNeu();
}
@Override
public void setzeDrehwinkel(int winkel)
{
super.setzeDrehwinkel(winkel);
this.berechneSchrittweitenNeu();
}
public void bewegen()
{
verschiebenUm(deltaX, deltaY);
berechneSchrittweitenNeu();
}
public void setzeGeschwindigkeit(int vNeu)
{
this.geschwindigkeit = vNeu;
berechneSchrittweitenNeu();
}
}
und der/die Chip(s):
Java:
public class CHIP extends BILD
{
public CHIP(int x, int y)
{
super( x, y, "Chip.gif");
}
}