Ball umdrehen lassen

Mein Programm soll nach drücken der „Pfeiltaste nach oben“ einen Ball abschießen der sobald er eine obere grenze erreicht hat wieder runter fliegen soll.
Mein Problem ist er fliegt nicht mehr runter bitte helft mir (am besten mit Lösung)

Hier mal das Programm (hab zur Übersicht mal das ganze Programm reingestellt eigentlich ist aber nur run() von Bedeutung.

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Ballerspiel extends Applet implements KeyListener,Runnable {

int x=50; // x Position des linken Spielers
int y=650; // y Position des linken Spielers
int x1=900; // x Position des rechten Spielers
int y1= 650; // y Position des rechten Spielers
int xball; // x_position des linken Balles
int yball; // y_position des linken Balles
int xball1; // x_position des rechten Balles
int yball1; // y_position des rechten Balles
double höhe; // obere Grenze des Fensters
double vx; // x - Geschwindigkeit
double vy; // y - Geschwindigkeit

public void init() {

addKeyListener (this);

höhe=1;

}

public void start(){
// Schaffen eines neuen Threads, in dem das Spiel läuft
Thread th = new Thread (this);
// Starten des Threads
th.start ();
}

public void paint(Graphics g) {

g.drawRect (x,y,20,20); // zeichne linken Spieler
g.drawRect (x1,y1,20,20); // zeichne rechten Spieler
g.drawOval(xball,yball,2,2); // zeichne linken Ball
g.drawLine (1,1,1024,1);
}

public void keyPressed (KeyEvent e){

switch (e.getKeyCode()){

case KeyEvent.VK_LEFT:{ // linken Spieler nach links bewegen
x = x-2;
break;
}
case KeyEvent.VK_RIGHT:{ // linken Spieler nach rechts bewegen
x = x+2;
break;
}
case KeyEvent.VK_UP:{ // Ball abschießen
xball=x;
yball=y;
}
case KeyEvent.VK_A:{ // rechten Spieler nach links bewegen
x1 = x1-2;
break;
}
case KeyEvent.VK_D:{ // rechten Spieler nach rechts bewegen
x1 = x1+2;
break;
}

}
repaint();

}

public void keyTyped (KeyEvent e){}
public void keyReleased (KeyEvent e){}

public void run ()
{
// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

// Solange true ist läuft der Thread weiter
while (true)
{
vx=2;
vy=2;

if (yball höhe){
vy=-vy;

}
// Ändern der x und y Position der Kugel
xball += vx;
yball += vy;

// Neuzeichnen des Applets
repaint();

try
{
// Stoppen des Threads für in Klammern angegebene Millisekunden
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}

// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}

}

Mein Programm soll nach drücken der „Pfeiltaste nach oben“
einen Ball abschießen der sobald er eine obere grenze erreicht
hat wieder runter fliegen soll.
Mein Problem ist er fliegt nicht mehr runter bitte helft mir
(am besten mit Lösung)

Ich sehe nur einen kleinen Punkt von links nach rechts wandern.
Bei Tastendruck passiert nichts.

Schau dir mal folgenden Link an:
http://javaboutique.internet.com/tutorials/Java_Game…
So, und jetzt auch noch draufklicken. :wink:

Gruss, Patrick