Probleme Bei Pong Programmierung

Status
Nicht offen für weitere Antworten.

LiL Romeo1507

Neues Mitglied
Hey Leute..
Sry für die Eröffnung eines neuen Threads...
ich soll für die schule ein pong-spiel erstellen, doch ich komm im mom echt nicht weiter...

Ich hab diese 5 Klassen erstellt: Pong (Hauptprogramm), Schläger, Ball


Pong:

Code:
import sum.kern.*;

public class Pong
{
Bildschirm Spielfeld;
Buntstift hatBs;
Ball Kugel;
Schläger S1;
Schläger 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();
Kugel = new Ball(250,200,0.01,4,Spielfeld,S1,S2);
S1 = new Schläger(3,200,'a','y');
S2 = new Schläger(495,200,'j','m');
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);
}
}

Ball:

Code:
import sum.kern.*;

public class Ball
{
Buntstift Bs;
Bildschirm kenntBildschirm;
Schläger kenntSchläger1;
Schläger kenntSchläger2;
// Attribute
int xPos,yPos;
double Richtung,Geschwindigkeit,hPosition,vPosition;


public Ball(int x,int y,double v, double r,Bildschirm b,Schläger s1,Schläger s2)
{
Bs = new Buntstift();
xPos = x;
yPos = y;
Richtung = r;
Geschwindigkeit = v;
kenntBildschirm = b;
kenntSchläger1 = s1;
kenntSchläger1 = 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.amLinkenSchläger())
{this.setzeRichtung(360-Richtung);}
if (this.amRechtenSchläger())
{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;}
}

[i][u]public boolean amLinkenSchläger()
{
if (
(xPos >= kenntSchläger1.hPosition() + 7) &&
(xPos <= kenntSchläger1.hPosition() + 8) &&
(yPos <= kenntSchläger1.vPosition() + 3) &&
(yPos >= kenntSchläger1.vPosition() - 3) )
{return true;}
else {return false;}
}

public boolean amRechtenSchläger()
{
if (
(xPos <= kenntSchläger2.hPosition() - 7) &&
(xPos >= kenntSchläger2.hPosition() - 8) &&
(yPos <= kenntSchläger2.vPosition() + 3) &&
(yPos >= kenntSchläger2.vPosition() - 3) )
{return true;}
else {return false;}
}[/u][/i]

}

Schläger:

Code:
import sum.kern.*;

public class Schläger
{
    Tastatur KB;
    Buntstift Bs;
    int xPos,yPos;
    double hPosition,vPosition;
    char Th,Tr;

    public Schläger(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();
    }
}

Jedes Mal wenn ich das Spiel starte und die Maus drücke, zeigt er mir in Zeile 126ff eine NullPointerException an. Ich verzweifel!! Dazu kommt noch, dass sich die beiden Schläger (Balken) noch nicht bewegen lassen...

Vielen Dank im vorau
 

Marco13

Top Contributor
Es sind nicht 5 sondern 3 Klassen. Und wichtige Klassen scheinen zu fehlen. Wobei ich so ein dumpfes Gefühl habe, dass ich die beiden fehlenden Klassen garnicht sehen WILL.

Variablennamen schreibt man übrigens klein.

Code:
Kugel = new Ball(250,200,0.01,4,Spielfeld,S1,S2);
S1 = new Schläger(3,200,'a','y');
S2 = new Schläger(495,200,'j','m');
ändern in
Code:
S1 = new Schläger(3,200,'a','y');
S2 = new Schläger(495,200,'j','m'); 
Kugel = new Ball(250,200,0.01,4,Spielfeld,S1,S2);
 

Quaxli

Top Contributor
Marco13 hat gesagt.:
Es sind nicht 5 sondern 3 Klassen. Und wichtige Klassen scheinen zu fehlen. Wobei ich so ein dumpfes Gefühl habe, dass ich die beiden fehlenden Klassen garnicht sehen WILL.

Geht mir auch so. :bahnhof:

Grundsätzlich weist einen NullPointerException darauf hin, daß ein Objekt nicht instanziiert ist. Irgendwo in diesen vielen mit && verknüpften Bedingungen steckt also ein Objekt, daß noch nicht erzeugt wurde. Wenn Du alle Objekte mit

Code:
  System.out.println("Schläger 1 = " + kenntSchläger1);
  ...

ausgeben läßt, dann findest Du das recht schnell raus. Aber ich rate Dir dringend, das Ganze mal zu überarbeiten.

Daher nutze ich mal wieder die Gelegenheit auf mein Tutorial hinzuweisen. Schau Dir das mal an. Es wird zwar ein anderes Spiel programmiert, aber es zeigt Dir eine Möglichkeit, wie Du es machen könntest.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Probleme bei Pong Spiele- und Multimedia-Programmierung 9
D Java Pong Probleme Spiele- und Multimedia-Programmierung 7
N Pong - noch 2 kleinere Probleme Spiele- und Multimedia-Programmierung 16
E Scaling Probleme Spiele- und Multimedia-Programmierung 6
D Java Bomberman Probleme java.lang.NullPointerException Spiele- und Multimedia-Programmierung 1
J YoutubeAPI Livestream probleme Spiele- und Multimedia-Programmierung 3
G [LibGDX] Button Klick Probleme Spiele- und Multimedia-Programmierung 1
T Probleme mit JButton Spiele- und Multimedia-Programmierung 5
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
P Probleme mit VLCJ Spiele- und Multimedia-Programmierung 0
F Probleme bei der Soundwiedergabe Spiele- und Multimedia-Programmierung 0
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
F BlueJ Ufospiel Probleme Spiele- und Multimedia-Programmierung 1
B Probleme mit AndEngine in Android Spiele- und Multimedia-Programmierung 1
M 2048, 3 kleine Probleme Spiele- und Multimedia-Programmierung 4
A Probleme mit Darstellung von Umgebungen mittels mehrdimensionaler Arrays Spiele- und Multimedia-Programmierung 8
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
J Perfomance Probleme beim eigenen Editor Spiele- und Multimedia-Programmierung 1
K Probleme beim kompilieren von javakara Spiele- und Multimedia-Programmierung 10
Q LWJGL - Alpha-Probleme Spiele- und Multimedia-Programmierung 2
M Point & Click Thread Probleme Spiele- und Multimedia-Programmierung 20
K Probleme mit .jar Spiele- und Multimedia-Programmierung 12
L Probleme beim kompilieren von javakara Spiele- und Multimedia-Programmierung 3
D Probleme mit der Runnable jar Datei Spiele- und Multimedia-Programmierung 3
D Probleme mit objekt initializirung mit Mouselistener Spiele- und Multimedia-Programmierung 10
Black_ixx Hintergrund & Koordinaten Probleme Spiele- und Multimedia-Programmierung 2
B Probleme mit Texturen Spiele- und Multimedia-Programmierung 7
Maxim6394 Probleme bei Sidescroller Spiele- und Multimedia-Programmierung 5
R Probleme mit JPanel!KeyListener geht nicht Spiele- und Multimedia-Programmierung 6
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Maxim6394 [Java3D] Probleme mit KeyFrame Animationen Spiele- und Multimedia-Programmierung 9
T Probleme mit Skysphere in Opengl Spiele- und Multimedia-Programmierung 4
B Probleme mit redraw() Spiele- und Multimedia-Programmierung 3
Gossi Quaxlis 2D Tutorial....Probleme nach hinzufügen der Kollisionsabfrage Spiele- und Multimedia-Programmierung 16
Gossi Probleme beim Laden der Images aus dem "Tutorial für Java-Spiele" Spiele- und Multimedia-Programmierung 4
S Probleme mit Tutorial Spiele- und Multimedia-Programmierung 3
T Probleme mit AffineTransform Spiele- und Multimedia-Programmierung 13
W Probleme mit Mouselook Spiele- und Multimedia-Programmierung 2
B GameGrid Probleme mit mehrere Actors Spiele- und Multimedia-Programmierung 5
B GameGrid Probleme mit mehrere Actors Spiele- und Multimedia-Programmierung 2
M [Spiel] Kartenspiel Leben und Tod Tips und Probleme Spiele- und Multimedia-Programmierung 7
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
S Probleme mit JMenu in einem JFrame mit BufferStrategy Spiele- und Multimedia-Programmierung 2
Steev Probleme mit Kameraausrichtung bei ISO-Map Spiele- und Multimedia-Programmierung 3
R MediaPlayer macht Probleme Spiele- und Multimedia-Programmierung 2
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
prakdi Probleme mit Quaxlis tutorial Spiele- und Multimedia-Programmierung 5
T Java Sound Probleme Spiele- und Multimedia-Programmierung 8
P probleme mit key event Spiele- und Multimedia-Programmierung 11
T Bekanntes Heli Spiel -> Aber Probleme damit Spiele- und Multimedia-Programmierung 30
S Probleme mit Thread beim Streaming Spiele- und Multimedia-Programmierung 1
O Ampel - Probleme mit der Farbgebung Spiele- und Multimedia-Programmierung 16
F Probleme bei Bewegung Spiele- und Multimedia-Programmierung 7
P Probleme mit Vista und JOGL Spiele- und Multimedia-Programmierung 2
P Probleme mit Wolkenbewegung Spiele- und Multimedia-Programmierung 5
W Probleme mit dem setTextureCoordinate Spiele- und Multimedia-Programmierung 3
D Probleme beim Download von GIF-Bildern Spiele- und Multimedia-Programmierung 4
S Probleme mit dem Licht und dem KeyListener Spiele- und Multimedia-Programmierung 2
D Probleme bei ATI Karten bekannt? Spiele- und Multimedia-Programmierung 4
H Probleme bei Rotation Spiele- und Multimedia-Programmierung 9
X Probleme. Spiele- und Multimedia-Programmierung 2
E Probleme mit Kollisionserkennung ! Spiele- und Multimedia-Programmierung 2
F Probleme mit selbsterstelltem transparenten PNG Spiele- und Multimedia-Programmierung 5
S probleme mit material Spiele- und Multimedia-Programmierung 2
W Probleme beim entfernen von Childs im HauptSceneGraph Spiele- und Multimedia-Programmierung 8
M Probleme mit WaveFront-Object - Datei Spiele- und Multimedia-Programmierung 7
B Probleme beim zeichnen Spiele- und Multimedia-Programmierung 15
D Gomoku --- Probleme bei Instanzierung Spiele- und Multimedia-Programmierung 2
G Probleme beim installieren java 3d linux Spiele- und Multimedia-Programmierung 4
G Sound Probleme Spiele- und Multimedia-Programmierung 2
S Probleme mit Canvas! Spiele- und Multimedia-Programmierung 2
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13
C Probleme mit Java3D (sun.awt.DrawingSurface) in Java 5 Spiele- und Multimedia-Programmierung 10
R Probleme mit Sound in Applikation. HILFE Spiele- und Multimedia-Programmierung 5
N Probleme mit View Spiele- und Multimedia-Programmierung 3
J Pong Programm Spiele- und Multimedia-Programmierung 1
T Pong Hilfe bei einer Website Spiele- und Multimedia-Programmierung 4
S Pong java.lang.StackOverflowError Spiele- und Multimedia-Programmierung 3
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
T Torquemada´s erstes Game (Pong) Spiele- und Multimedia-Programmierung 5
A Pong Grafikgestaltung Spiele- und Multimedia-Programmierung 10
R Pong -Reruns möglich machen Spiele- und Multimedia-Programmierung 2
Y Pong Spiel Score Zähler! -.- Spiele- und Multimedia-Programmierung 18
Y Ping Pong Spiele- und Multimedia-Programmierung 4
M Einfaches Ping-Pong Spiel Spiele- und Multimedia-Programmierung 3
U Pong Spiele- und Multimedia-Programmierung 7
1 Ping Pong langsam Spiele- und Multimedia-Programmierung 13
BattleMaster246 Pong - JOGL Spiele- und Multimedia-Programmierung 2
J ping pong ball abprallen lassen Spiele- und Multimedia-Programmierung 12
L Java Ping Pong Spiele- und Multimedia-Programmierung 1
J Tips für ein kleines Pong-Applet Spiele- und Multimedia-Programmierung 4
S Ping Pong: KeyListener in Paint und while Spiele- und Multimedia-Programmierung 10
W Hilfe bei Pong mit Bluej Spiele- und Multimedia-Programmierung 4
M Fragen zu meinem Pong-Clone Spiele- und Multimedia-Programmierung 6
G Ping Pong Frage Spiele- und Multimedia-Programmierung 17
G Pong klon mit Steuerungsprobleme Spiele- und Multimedia-Programmierung 8
B Pong-Klon. Denkfehler bei kollisionstest Spiele- und Multimedia-Programmierung 3
B Ping Pong Spiele- und Multimedia-Programmierung 11

Ähnliche Java Themen

Neue Themen


Oben