Ich hab selbst schon Pong in Java programmiert, aber wohl nicht die super Lösung, aber es läuft.
Hier, auf meiner Website, ist das Programm, auch mit Quellcode, kannst dirs ja mal ansehen.
Ich hab dir mal die Routinen der Balkensteuerung und der Ballbewegung rauskopiert,
vielleicht hilfts dir ja.
Code:
//Balken links
addKeyListener(this);
b1.p.y += b1.p.y_speed;
b1.p.x += b1.p.x_speed;
if((b1.p.y+b1.height) >= appletsize_y){
b1.p.y_speed = 0;
b1.p.y = appletsize_y - b1.height - 1;
}
if((b1.p.y) <= 0){
b1.p.y_speed = 0;
b1.p.y = 1;
}
//Balken rechts
b2.p.y += b2.p.y_speed;
b2.p.x += b2.p.x_speed;
if((b2.p.y+b2.height) >= appletsize_y){
b2.p.y_speed = 0;
b2.p.y = appletsize_y - b1.height - 1;
}
if((b2.p.y) <= 0){
b2.p.y_speed = 0;
b2.p.y = 1;
}
//KI Balken rechts
// b2.p.y = b.p.y+b.diam/2-b2.height/2;
//Ball
b.p.x += b.p.x_speed;
b.p.y += b.p.y_speed;
if((b.p.x < b1.p.x+b1.width) & ((b.p.y >= b1.p.y+b.diam/2) | (b.p.y <= b1.p.y+b1.height+b.diam/2))){
b.p.x_speed = 2;
route = 0;
if(b.p.y_speed <= 4)
b.p.y_speed = b1.p.y_speed+b.p.y_speed;
}
if((b.p.x < b1.p.x+b1.width) & ((b.p.y < b1.p.y-b.diam/2) | (b.p.y > b1.p.y+b1.height-b.diam/2))){
b.p.x = appletsize_x/2-appletsize_x/20;
b.p.y = appletsize_y/2-appletsize_x/20;
b.p.x_speed = 0;
b.p.y_speed = 0;
point1++;
p1 = String.valueOf(point1);
}
if((b.p.x > b2.p.x-b.diam) & ((b.p.y >= b2.p.y+b.diam/2) | (b.p.y <= b2.p.y+b2.height+b.diam/2))){
b.p.x_speed = -2;
route = 1;
if(b.p.y_speed <= 4)
b.p.y_speed = b2.p.y_speed+b.p.y_speed;
}
if((b.p.x > b2.p.x-b.diam) & ((b.p.y < b2.p.y-b.diam/2) | (b.p.y > b2.p.y+b2.height-b.diam/2))){
b.p.x = appletsize_x/2-appletsize_x/20;
b.p.y = appletsize_y/2-appletsize_x/20;
b.p.x_speed = 0;
b.p.y_speed = 0;
point2++;
p2 = String.valueOf(point2);
}
if(b.p.y <= 0)
b.p.y_speed = -b.p.y_speed;
if(b.p.y >= appletsize_y-b.diam)
b.p.y_speed = -b.p.y_speed;