Pong Programm

Status
Nicht offen für weitere Antworten.

Java xyrse123

Bekanntes Mitglied
Hallo,
Ich habe ein Pong Spiel programmiert, doch ab und zu prallt der Ball nicht vom Schläger ab, sondern geht hindurch. Ich bin ein ziemlicher Anfänger und weiss echt nicht mehr weiter. Könnte mir dabei jemand helfen ?

Schonmal Danke im Voraus

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Pong extends JPanel { {
int x = 30, y = 300;// Schläger 1
int Px = 200, Py = 200; // Ball
int x2 = 770, y2 = 300; // Schläger 2
int dPx = 10, dPy = 10; // Geschwindigkeiz Ball
boolean Spieler1o = false; // oben
boolean Spieler1u = false; // unten
boolean Spieler2o = false;
boolean Spieler2u = false;
public Pong() {
setPreferredSize(new Dimension(800, 600));

Ball neu = new Ball();
neu.start();
Schläger s = new Schläger();
s.start();
}
public void paint(Graphics gr) { // beiden Schläger und Ball
Graphics2D g = (Graphics2D) gr; // werden gezeichnet
g.setColor(Color.WHITE);
g.fill(g.getClipBounds());
g.setColor(Color.BLACK);
g.fillRect(x, y, 10, 80);
g.fillOval(Px, Py, 30, 30);
g.fillRect(x2, y2, 10, 80);
}
public void PositionSchläger1() { // AnfangsPosition
x = 30;
y = 300;
repaint();
}
public void PositionBall() { // AnfangsPosition
Px = 200;
Py = 200;
repaint();

}
public void PositionSchläger2() {
x2 = 760;
y2 = 300;
repaint();
}
class Ball extends Thread {
void bewegen() {
Px = Px + dPx; //
Py = Py + dPy;

if (Px < 0) { //30
Px = 0;
dPx = -dPx;
}
if (Py < 0) { //30
Py = 0;
dPy = -dPy;
}
if (Py > 570) {
Py = 570;
dPy = -dPy;
}
if (Px > 770) {
Px = 770;
dPx = -dPx;
}

if(Px == 40 && Py >= y && Py <= y +80) { //getY //80 //Py
Px=40;

dPx=-dPx;

dPy=-dPy;
}

if(Px==740 && Py>=y2 && Py<= y2+80 ) {//&& Px>=y2 && Px<= y2+80)
Px=740;
dPx=-dPx;
dPy=-dPy;
}
repaint();
}



public void run() { // Thread für Ball

while (!isInterrupted()) {

bewegen();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
return;
}
}
}
}
class Schläger extends Thread implements KeyListener {
Schläger() {
addKeyListener(this);
}
public void run() {

while (true) {
if (Spieler1o == true) {
y -= 12;
}
if (Spieler1u == true) {
y += 12;
}
if (Spieler2o == true) {
y2 -= 12;
}
if (Spieler2u == true) {
y2 += 12;
}
if (y2 > 520) { // 600-80 wegen Schlägerlänge
y2 = 520;
}
if (y2 < 0) {
y2 = 0;
}
if (y < 0) {
y = 0;
}
if (y > 520) {
y = 520;
}
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void keyPressed(KeyEvent e) { // Spieler 1
if (e.getKeyCode() == KeyEvent.VK_W) {
Spieler1o = true;
}
if (e.getKeyCode() == KeyEvent.VK_S) {
Spieler1u = true;
}
if (y > 520) { // 600-80 wegen Schlägerlänge
y = 520;
}
if (y < 0) {
y = 0;
}
if (e.getKeyCode() == KeyEvent.VK_UP) { // Spieler2
Spieler2o = true;
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
Spieler2u = true;
}
}
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_W) {
Spieler1o = false;
}
if (e.getKeyCode() == KeyEvent.VK_S) {
Spieler1u = false;
}
if (e.getKeyCode() == KeyEvent.VK_UP) {
Spieler2o = false;
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
Spieler2u = false;
}
}
public void keyTyped(KeyEvent e) {
}
}
}

und hier die Hauptklasse:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Fenster extends JFrame {
private Pong pong = new Pong();
public Fenster() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
getContentPane().add(pong);

pong.PositionBall();
pack();
getRootPane();setVisible(true);

pong.PositionSchläger2();
pong.PositionSchläger1();
pong.setFocusable(true);

}
public static void main(String[] args) {
new Fenster();

}
}
 

krgewb

Top Contributor
Hier mal dein Code in leserlicherer Form:

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Pong extends JPanel {
	// {
	int x = 30, y = 300;// Schläger 1
	int Px = 200, Py = 200; // Ball
	int x2 = 770, y2 = 300; // Schläger 2
	int dPx = 10, dPy = 10; // Geschwindigkeiz Ball
	boolean Spieler1o = false; // oben
	boolean Spieler1u = false; // unten
	boolean Spieler2o = false;
	boolean Spieler2u = false;

	public Pong() {
		setPreferredSize(new Dimension(800, 600));

		Ball neu = new Ball();
		neu.start();
		Schläger s = new Schläger();
		s.start();
	}

	public void paint(Graphics gr) { // beiden Schläger und Ball
		Graphics2D g = (Graphics2D) gr; // werden gezeichnet
		g.setColor(Color.WHITE);
		g.fill(g.getClipBounds());
		g.setColor(Color.BLACK);
		g.fillRect(x, y, 10, 80);
		g.fillOval(Px, Py, 30, 30);
		g.fillRect(x2, y2, 10, 80);
	}

	public void PositionSchläger1() { // AnfangsPosition
		x = 30;
		y = 300;
		repaint();
	}

	public void PositionBall() { // AnfangsPosition
		Px = 200;
		Py = 200;
		repaint();

	}

	public void PositionSchläger2() {
		x2 = 760;
		y2 = 300;
		repaint();
	}

	class Ball extends Thread {
		void bewegen() {
			Px = Px + dPx; //
			Py = Py + dPy;

			if (Px < 0) { // 30
				Px = 0;
				dPx = -dPx;
			}
			if (Py < 0) { // 30
				Py = 0;
				dPy = -dPy;
			}
			if (Py > 570) {
				Py = 570;
				dPy = -dPy;
			}
			if (Px > 770) {
				Px = 770;
				dPx = -dPx;
			}

			if (Px == 40 && Py >= y && Py <= y + 80) { // getY //80 //Py
				Px = 40;

				dPx = -dPx;

				dPy = -dPy;
			}

			if (Px == 740 && Py >= y2 && Py <= y2 + 80) {// && Px>=y2 && Px<=
															// y2+80)
				Px = 740;
				dPx = -dPx;
				dPy = -dPy;
			}
			repaint();
		}

		public void run() { // Thread für Ball

			while (!isInterrupted()) {

				bewegen();
				try {
					Thread.sleep(50);
				} catch (InterruptedException e) {
					return;
				}
			}
		}
	}

	class Schläger extends Thread implements KeyListener {
		Schläger() {
			addKeyListener(this);
		}

		public void run() {

			while (true) {
				if (Spieler1o == true) {
					y -= 12;
				}
				if (Spieler1u == true) {
					y += 12;
				}
				if (Spieler2o == true) {
					y2 -= 12;
				}
				if (Spieler2u == true) {
					y2 += 12;
				}
				if (y2 > 520) { // 600-80 wegen Schlägerlänge
					y2 = 520;
				}
				if (y2 < 0) {
					y2 = 0;
				}
				if (y < 0) {
					y = 0;
				}
				if (y > 520) {
					y = 520;
				}
				repaint();
				try {
					Thread.sleep(50);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}

		public void keyPressed(KeyEvent e) { // Spieler 1
			if (e.getKeyCode() == KeyEvent.VK_W) {
				Spieler1o = true;
			}
			if (e.getKeyCode() == KeyEvent.VK_S) {
				Spieler1u = true;
			}
			if (y > 520) { // 600-80 wegen Schlägerlänge
				y = 520;
			}
			if (y < 0) {
				y = 0;
			}
			if (e.getKeyCode() == KeyEvent.VK_UP) { // Spieler2
				Spieler2o = true;
			}
			if (e.getKeyCode() == KeyEvent.VK_DOWN) {
				Spieler2u = true;
			}
		}

		public void keyReleased(KeyEvent e) {
			if (e.getKeyCode() == KeyEvent.VK_W) {
				Spieler1o = false;
			}
			if (e.getKeyCode() == KeyEvent.VK_S) {
				Spieler1u = false;
			}
			if (e.getKeyCode() == KeyEvent.VK_UP) {
				Spieler2o = false;
			}
			if (e.getKeyCode() == KeyEvent.VK_DOWN) {
				Spieler2u = false;
			}
		}

		public void keyTyped(KeyEvent e) {
		}
	}
}

Und hier die Hauptklasse:
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Fenster extends JFrame {
	private Pong pong = new Pong();

	public Fenster() {
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		getContentPane().add(pong);

		pong.PositionBall();
		pack();
		getRootPane();
		setVisible(true);

		pong.PositionSchläger2();
		pong.PositionSchläger1();
		pong.setFocusable(true);

	}

	public static void main(String[] args) {
		new Fenster();

	}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Probleme bei Pong Spiele- und Multimedia-Programmierung 9
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
D Java Pong Probleme Spiele- und Multimedia-Programmierung 7
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
L Probleme Bei Pong Programmierung Spiele- und Multimedia-Programmierung 2
G Pong klon mit Steuerungsprobleme Spiele- und Multimedia-Programmierung 8
B Pong-Klon. Denkfehler bei kollisionstest Spiele- und Multimedia-Programmierung 3
N Pong - noch 2 kleinere Probleme Spiele- und Multimedia-Programmierung 16
B Ping Pong Spiele- und Multimedia-Programmierung 11
G Pong-Klon (Applet!) Spiele- und Multimedia-Programmierung 4
R Ping Pong Spiel Fehlermeldung Spiele- und Multimedia-Programmierung 12
H Performance check Pong Spiele- und Multimedia-Programmierung 19
R Ping Pong Spiel Spiele- und Multimedia-Programmierung 28
Leon.tr3x Mein erstes Programm/Spiel Spiele- und Multimedia-Programmierung 10
P Wie kann ich einem Programm hinter eine GUI verstecken? Spiele- und Multimedia-Programmierung 12
P Programm welches auf CMD basirende Programme öffnet (Notepad), sucht , ausführt und compiliert Spiele- und Multimedia-Programmierung 23
A Code in Programm wandeln, wie? Spiele- und Multimedia-Programmierung 3
J Programm "fehlerhaft" als .jar Spiele- und Multimedia-Programmierung 4
P schach programm- wo anfangen? Spiele- und Multimedia-Programmierung 13
J Programm kann Audio Datei nicht finden Spiele- und Multimedia-Programmierung 7
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
B Mein Programm reagiert nicht auf den Tasstendruck Spiele- und Multimedia-Programmierung 1
C Mein Programm wird sofort terminated Spiele- und Multimedia-Programmierung 8
A Minecraft Minecraft, Programm funktioniert nur in Eclipse richtig Spiele- und Multimedia-Programmierung 24
P Quiz-Programm Spiele- und Multimedia-Programmierung 4
F Screenshot Programm nach Exception weiterlaufen lassen? Spiele- und Multimedia-Programmierung 9
Q AudioClip hängt Programm auf Spiele- und Multimedia-Programmierung 7
S Wolken Bild/Grafik vom Programm erstellen lassen Spiele- und Multimedia-Programmierung 11
C Minecraft Minecraft-Programm: Server anpingen Spiele- und Multimedia-Programmierung 2
J Suche 3D Programm für jMonkeyEngine Spiele- und Multimedia-Programmierung 5
S Kann mir wer verraten wie mann ein java programm Starten? Spiele- und Multimedia-Programmierung 4
U Value in Programm ändern? Spiele- und Multimedia-Programmierung 5
F Programm für Bildbearbeitung gesucht: Skalieren und Speichern Spiele- und Multimedia-Programmierung 6
S Programm hängt sich auf wenn Lied abspielt Spiele- und Multimedia-Programmierung 4
D VOte programm aber wie ?? Spiele- und Multimedia-Programmierung 8
F Programm mit Java3D unter Linux laufen lassen Spiele- und Multimedia-Programmierung 3
S Java 3D Szenegraph programm Spiele- und Multimedia-Programmierung 3
W Programm hängt manchmal Spiele- und Multimedia-Programmierung 5
G AffineTransform macht programm immer langsamer Spiele- und Multimedia-Programmierung 3
M warum funkt dieses Programm nicht? (Menübar, Java 3D) Spiele- und Multimedia-Programmierung 2
G Simples Programm sollte laufen? Spiele- und Multimedia-Programmierung 8
A Programm für ein Backgammon (tavli) Spiel Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben