mercredi 29 avril 2015
Java Fehler: NullPointerException
Posted on 08:07 by verona
Hallo zusammen,
ich habe in Java (mit BlueJ) das Spiel Pong programmiert. Nun kommen nach dem Starten folgende Fehlermeldungen:
java.lang.NullPointerException
at Ball.amRechtenSchlaeger(Ball.java:136)
at Ball.bewege(Ball.java:69)
at Pong.Spielstart(Pong.java:68)
Hier mein Code:
Danke und viele Grüße!
ich habe in Java (mit BlueJ) das Spiel Pong programmiert. Nun kommen nach dem Starten folgende Fehlermeldungen:
java.lang.NullPointerException
at Ball.amRechtenSchlaeger(Ball.java:136)
at Ball.bewege(Ball.java:69)
at Pong.Spielstart(Pong.java:68)
Hier mein Code:
Java Code:
- 
- 
import sum.kern.*;
- 
- 
public class Pong
- 
{
- 
Bildschirm Spielfeld;
- 
Buntstift hatBs;
- 
Ball Kugel;
- 
Schlaeger S1;
- 
Schlaeger S2;
- 
Tastatur KB;
- 
Maus hatMaus;
- 
int starter;
- 
int Sp1;
- 
int Sp2;
- 
- 
- 
public Pong()
- 
{
- 
Spielfeld = new Bildschirm(10,10,500,400);
- 
Sp1 = 0;
- 
Sp2 = 0;
- 
hatBs = new Buntstift();
- 
KB = new Tastatur();
- 
S1 = new Schlaeger(3,200,'a','y');
- 
S2 = new Schlaeger(495,200,'j','m');
- 
Kugel = new Ball(250,200,0.01,4,Spielfeld,S1,S2);
- 
hatMaus = new Maus();
- 
starter = 0;
- 
- 
- 
}
- 
- 
public void zeichneSpielfeld()
- 
{
- 
hatBs.setzeFarbe(0);
- 
hatBs.bewegeBis(0,15);
- 
hatBs.setzeFuellmuster(1);
- 
hatBs.zeichneRechteck(500,400);
- 
hatBs.hoch();
- 
hatBs.setzeSchriftgroesse(40);
- 
hatBs.radiere();
- 
hatBs.bewegeBis(220,50);
- 
hatBs.schreibeZahl(Sp1);
- 
hatBs.bewegeBis(258,50);
- 
hatBs.schreibeZahl(Sp2);
- 
}
- 
- 
public void zeichneMittellinie()
- 
{
- 
hatBs.bewegeBis(250,15);
- 
hatBs.runter();
- 
hatBs.radiere();
- 
hatBs.bewegeBis(250,400);
- 
hatBs.normal();
- 
}
- 
- 
public void Spielstart()
- 
{
- 
this.zeichneSpielfeld();
- 
this.zeichneMittellinie();
- 
S1.zeichne();
- 
S2.zeichne();
- 
Kugel.zeichne();
- 
do{
- 
if ((hatMaus.istGedrueckt()==true) || (starter==1))
- 
{
- 
starter=1;
- 
Kugel.bewege();
- 
if (KB.wurdeGedrueckt()==true)
- 
{S1.bewege();
- 
S2.bewege();
- 
}
- 
this.zeichneMittellinie();
- 
}}
- 
while (hatMaus.doppelKlick()==false);
- 
}
- 
}
Java Code:
- 
- 
import sum.kern.*;
- 
- 
public class Ball
- 
{
- 
Buntstift Bs;
- 
Bildschirm kenntBildschirm;
- 
Schlaeger kenntSchlaeger1;
- 
Schlaeger kenntSchlaeger2;
- 
// Attribute
- 
int xPos,yPos;
- 
double Richtung,Geschwindigkeit,hPosition,vPosition;
- 
- 
public Ball(int x,int y,double v, double r,Bildschirm b,Schlaeger s1,Schlaeger s2)
- 
{
- 
Bs = new Buntstift();
- 
xPos = x;
- 
yPos = y;
- 
Richtung = r;
- 
Geschwindigkeit = v;
- 
kenntBildschirm = b;
- 
kenntSchlaeger1 = s1;
- 
kenntSchlaeger1 = s2;
- 
- 
Bs.bewegeBis(xPos,yPos);
- 
}
- 
- 
// Dienste
- 
- 
public void zeichne()
- 
{
- 
Bs.radiere();
- 
Bs.setzeFuellmuster(1);
- 
Bs.zeichneKreis(5);
- 
Bs.normal();
- 
}
- 
- 
- 
public void loesche()
- 
{
- 
Bs.setzeFuellmuster(1);
- 
Bs.setzeFarbe(0);
- 
Bs.zeichneKreis(5);
- 
}
- 
- 
public void setzeGeschwindigkeit(double v)
- 
{
- 
Geschwindigkeit = v;
- 
}
- 
- 
public double geschwindigkeit()
- 
{
- 
return Geschwindigkeit;
- 
}
- 
- 
public void bewege()
- 
{
- 
this.loesche();
- 
- 
if (this.amLinkenRand())
- 
{this.setzeRichtung(180-Richtung);}
- 
if (this.amRechtenRand())
- 
{this.setzeRichtung(180-Richtung);}
- 
if (this.amOberenRand())
- 
{this.setzeRichtung(360-Richtung);}
- 
if (this.amUnterenRand())
- 
{this.setzeRichtung(360-Richtung);}
- 
if (this.amLinkenSchlaeger())
- 
{this.setzeRichtung(360-Richtung);}
- 
if (this.amRechtenSchlaeger())
- 
{this.setzeRichtung(360-Richtung);}
- 
this.loesche();
- 
Bs.bewegeUm(Geschwindigkeit);
- 
this.zeichne();
- 
- 
}
- 
- 
public void setzeRichtung (double r)
- 
{
- 
Bs.dreheBis(r);
- 
Richtung = Bs.winkel();
- 
}
- 
- 
public double hPosition()
- 
{
- 
return Bs.hPosition();
- 
}
- 
- 
public double vPosition()
- 
{
- 
return Bs.vPosition();
- 
}
- 
- 
public boolean amLinkenRand()
- 
{
- 
if (this.hPosition() <=5)
- 
{return true;}
- 
else {return false;}
- 
}
- 
- 
public boolean amRechtenRand()
- 
{
- 
if (this.hPosition() >= kenntBildschirm.breite()-5)
- 
{return true;}
- 
else {return false;}
- 
}
- 
- 
public boolean amOberenRand()
- 
{
- 
if (this.vPosition() <=20)
- 
{return true;}
- 
else {return false;}
- 
}
- 
- 
public boolean amUnterenRand()
- 
{
- 
if (this.vPosition() >=395)
- 
{return true;}
- 
else {return false;}
- 
}
- 
- 
public boolean amLinkenSchlaeger()
- 
{
- 
- 
if (
- 
(xPos >= kenntSchlaeger1.hPosition() + 7) &&
- 
(xPos <= kenntSchlaeger1.hPosition() + 8) &&
- 
(yPos <= kenntSchlaeger1.vPosition() + 3) &&
- 
(yPos >= kenntSchlaeger1.vPosition() - 3) )
- 
{return true;}
- 
else {return false;}
- 
}
- 
- 
public boolean amRechtenSchlaeger()
- 
{
- 
- 
if (
- 
(xPos <= kenntSchlaeger2.hPosition() - 7) &&
- 
(xPos >= kenntSchlaeger2.hPosition() - 8) &&
- 
(yPos <= kenntSchlaeger2.vPosition() + 3) &&
- 
(yPos >= kenntSchlaeger2.vPosition() - 3) )
- 
{return true;}
- 
else {return false;}
- 
- 
}
- 
- 
}
Java Code:
- 
- 
import sum.kern.*;
- 
- 
public class Schlaeger
- 
{
- 
Tastatur KB;
- 
Buntstift Bs;
- 
int xPos,yPos;
- 
double hPosition,vPosition;
- 
char Th,Tr;
- 
- 
public Schlaeger(int x, int y,char Th,char Tr)
- 
{
- 
KB = new Tastatur();
- 
Bs = new Buntstift();
- 
xPos = x;
- 
yPos = y;
- 
Bs.bewegeBis(xPos,yPos);
- 
}
- 
// Dienste
- 
- 
public void zeichne()
- 
{
- 
Bs.radiere();
- 
Bs.setzeFuellmuster(1);
- 
Bs.zeichneRechteck(4,20);
- 
}
- 
- 
- 
public void loesche()
- 
{
- 
Bs.setzeFuellmuster(1);
- 
Bs.setzeFarbe(0);
- 
Bs.zeichneRechteck(4,20);
- 
}
- 
- 
public void bewege()
- 
{
- 
this.loesche();
- 
if (KB.wurdeGedrueckt()==true)
- 
{
- 
if (KB.zeichen()==Th)
- 
{yPos = yPos + 4;}
- 
if (KB.zeichen()==Tr)
- 
{yPos = yPos - 4;}
- 
KB.weiter();
- 
this.zeichne();}
- 
- 
}
- 
- 
public double hPosition()
- 
{
- 
return Bs.hPosition();
- 
}
- 
- 
public double vPosition()
- 
{
- 
return Bs.vPosition();
- 
}
- 
}
Danke und viele Grüße!
Java Fehler: NullPointerException
Categories: Java Fehler: NullPointerException
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire