Hi,
ich möchte mit einem ScrollBar die Geschwindigkeit des Balles regeln(Thread.sleep (10-geschw)). Ich habe zwar die Methode unten AdjustmentListener implemetiert, aber ich weiß nicht weiter. Es sollen insg. drei Stufen geben(0,5,10).
ich möchte mit einem ScrollBar die Geschwindigkeit des Balles regeln(Thread.sleep (10-geschw)). Ich habe zwar die Methode unten AdjustmentListener implemetiert, aber ich weiß nicht weiter. Es sollen insg. drei Stufen geben(0,5,10).
Code:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Ballbewegung1 extends Applet implements Runnable,AdjustmentListener
{
// Initialisierung der Variablen
int x_pos = 10; // x - Position des Balles
int y_pos = 100; // y - Position des Balles
int radius = 20; // Radius des Balles
Scrollbar bar =new Scrollbar(Scrollbar.HORIZONTAL, 4, 1, 1, 4);
private int geschw=0;
public void init()
{
add(bar);
bar.addAdjustmentListener(this);
}
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 stop()
{
}
public void destroy()
{
}
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)
{
// Verändern der x- Koordinate
x_pos ++;
// Neuzeichnen des Applets
repaint();
try
{
// Stoppen des Threads für in Klammern angegebene Millisekunden
Thread.sleep (10-geschw);
}
catch (InterruptedException ex)
{
// do nothing
}
// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
public void paint (Graphics g)
{
g.setColor (Color.red);
g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
}
public void adjustmentValueChanged(AdjustmentEvent e) {
// Anzeigen des aktuellen
// Wertes des Scrollbars im Textfeld
}
}
Code: