Robinson97
Grünschnabel
Hallo Forum
,
ich bin dabei ein Pong - Spiel mit Java zu Programmieren, was auch ganz gut funktioniert. Das Problem ist nur, dass mein Ball jede Runde schneller wird, obwohl ich an der Geschwindigkeit des Balles nicht verändere.
Hier ist mein Quellcode:
Main:
Die Funktion Gameplay:
Ich hoffe ihr könnt mir weiterhelfen ! Danke

ich bin dabei ein Pong - Spiel mit Java zu Programmieren, was auch ganz gut funktioniert. Das Problem ist nur, dass mein Ball jede Runde schneller wird, obwohl ich an der Geschwindigkeit des Balles nicht verändere.
Hier ist mein Quellcode:
Main:
Java:
public static void main(String[] args) {
new ping("ping");
while(spielablauf) {
try {
if (tor) {
start = false;
start = countdown();
tor = false;
}
if (start) {
start_to_move_ball = true;
set_ball_to_start();
tor = gameplay();
start = false;
}
} catch (IllegalStateException e) {
System.err.printf("\fEin Problem ist mit dem Timer aufgetreten !!!%n" +
e);
}
}
}
Die Funktion Gameplay:
Java:
public static boolean gameplay() {
//jede Sekunde bewegt sich der Ball vorwäts
TimerTask action = new TimerTask() {
public void run() {
if (start_to_move_ball) {
speed = 1;
y1 -= speed;
x1 += speed;
}
if (ball_up == false) {
start_is_over();
y1 += speed;
x1 += speed;
System.out.println("Apprall");
}
if (y1 <= 0) {
ball_up = false;
}
ball.setBounds(x1, y1, 35, 41);
if (ball.getX() == 560) {
tor = true;
player_1.point();
lab_3.setText(player_1.getPoints());
set_ball_to_start();
}
if (ball.getX() == 0) {
tor = true;
player_2.point();
points_p2.setText(player_2.getPoints());
}
if (tor) {
set_ball_to_start();
ball_up=true;
}
//ball.setBounds(x,y,width,height);
}
};
Timer caretaker = new Timer();
caretaker.schedule(action, 1000, 15);
if(tor){
timer.cancel();
}
return tor;
}
Sobald das Spiel startet wird die Main ausgeführt und das gesamte Spiel wird durch eine dauerschaleife ausgeführt. Tor ist am Anfang auf True gesetzt und somit startet das Spiel am Anfang einen Countdown über eine Funktion. Ín der Funktion befindet sich ein Countdown der vpn 3 auf 0 zählt und anschleißend start auf true setzt. Somit fängt die Funktion Gameplay an zu laufen...
Die funktion startet immer damit den Ball anhand der Koordinaten nach rechts oben zu bewegen. Da ich noch keine richtige funktion zum Aprallen sowohl von der Wand. als auch von dem Schläger habe, regelt das nur eine if Bedingung. Sonst gibt es halt nur noch die Funktion zum Tor von Spieler 1 oder 2 und eine zurücksetzung des Balles nach einem Tor
Ich hoffe ihr könnt mir weiterhelfen ! Danke
