Hi,
ich möchte gerne eine Kugel nach einem Tastendruck von oben nach unten fallen lassen.
Beispielcode:
Weiters befindet sich hier in diesem Codeabschnitt auch noch ein Stab, welcher von links nach rechts wandert. ( übersichtshalber habe ich ihn mal rausgenommen ).
Wie ich einen Keylistener implementiere auf den kompletten Frame ist mir bereits bekannt, auch wie ich anschließend den boolean pressed auf true setze, jedoch habe ich Schwierigkeiten mit dem Thread, denn dieser läuft ja bereits und der Boolean war zu Beginn false, somit ist es mir nicht möglich mein gewünschtes Vorhaben zu realisieren.
Was für Möglichkeiten gibt es denn, dass die Änderung der Variable pressed auch Einfluss auf den Ablauf innerhalb des Threads während er läuft hat? Bestimmt sehr logisch, jedoch habe ich damit noch keine Erfahrung gemacht.
Meine Überlegung wäre sowohl für den Stab als auch für die Kugel einen separaten Thread zu erstellen und dann jeweils den Thread der Kugel stoppen/starten....
Gruß
ich möchte gerne eine Kugel nach einem Tastendruck von oben nach unten fallen lassen.
Beispielcode:
Java:
import java.awt.Color;
import java.awt.Graphics;
class Raft extends JComponent implements Runnable {
private int xBall=350;
private int yBall=70;
private boolean pressed=false;
public void paint(Graphics g) {
g.setColor(Color.GRAY);
g.fillOval(xBall,yBall, 21, 21);
}
public void start () {
Thread th = new Thread (this);
th.start();
}
public void run () {
while (true) {
/*
* Balls
*/
if(pressed){
if(yBall<=584.5){
yBall++;
} else System.out.println("checkResult();");
}
repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) { }
}}
}
Weiters befindet sich hier in diesem Codeabschnitt auch noch ein Stab, welcher von links nach rechts wandert. ( übersichtshalber habe ich ihn mal rausgenommen ).
Wie ich einen Keylistener implementiere auf den kompletten Frame ist mir bereits bekannt, auch wie ich anschließend den boolean pressed auf true setze, jedoch habe ich Schwierigkeiten mit dem Thread, denn dieser läuft ja bereits und der Boolean war zu Beginn false, somit ist es mir nicht möglich mein gewünschtes Vorhaben zu realisieren.
Was für Möglichkeiten gibt es denn, dass die Änderung der Variable pressed auch Einfluss auf den Ablauf innerhalb des Threads während er läuft hat? Bestimmt sehr logisch, jedoch habe ich damit noch keine Erfahrung gemacht.
Meine Überlegung wäre sowohl für den Stab als auch für die Kugel einen separaten Thread zu erstellen und dann jeweils den Thread der Kugel stoppen/starten....
Gruß