Thread unterbrechen

Status
Nicht offen für weitere Antworten.

sirair

Aktives Mitglied
Hi,
Ich möchte, wenn man auf Taste p drückt der Ball pausiert und bei einem erneuten Tastendruck sie wieder weiterläuft. Ich habe es zwar mit wait() und notify() wie unten versucht, aber es läuft nicht.
Wie ist es denn richtig? Danke.

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

public class Ballbewegung1 extends Applet implements Runnable, KeyListener
{
// 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
private boolean paused=false;
private Object pauseMonitor=new Object();

public void init()
{
addKeyListener(this);
}

public void keyTyped(KeyEvent e) {
if(e.getKeyChar() == 'p'){
if(paused) {
synchronized (pauseMonitor) {
pauseMonitor.notify();
}
} else {
paused=true;
}
}
}
public void keyReleased(KeyEvent e){}
public void keyPressed(KeyEvent e) {}


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 run ()
{
Thread.currentThread().setPriority(Thread.MIN_PRIORITY) ;

while(true) {
x_pos ++;
repaint();
if(paused) {
synchronized (pauseMonitor) {
try {

pauseMonitor.wait();

Thread.sleep (10);

} catch (InterruptedException e) {}
}
paused=false;
}

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);
}

}
 

Soulfly

Bekanntes Mitglied
Ist auch richtig, dass es nicht so gut funktioniert! Außerdem möchtest du ja deine Spielschleife gerne beibehalten, oder?

Erstell doch einfach eine while(nochPause) Schleife in der keine Spieloperationen, außer der anzeige vllt, gemacht werden. So wird es am häufigsten gelöst und ist einfach umzusetzen.

MfG
Soulfly
 

Soulfly

Bekanntes Mitglied
nunja mit nem Keylistener eine boolean steuern

p drücken --> nochPause = true;

...

while (nochPause){
//nichtvieltun
}

p drücken --> nochPause = false;

und weiter
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Minecraft PlayerBot (Listener Thread für jeden Spieler?) Spiele- und Multimedia-Programmierung 3
H Exeption in thread "Thread-2" NullPointerExeption: init methode? Spiele- und Multimedia-Programmierung 25
O Thread pausieren und wieder starten Spiele- und Multimedia-Programmierung 2
kaoZ Animation in eigenen Thread auslagern..... Spiele- und Multimedia-Programmierung 1
gamebreiti Daemon Thread Spiele- und Multimedia-Programmierung 4
M Point & Click Thread Probleme Spiele- und Multimedia-Programmierung 20
N JPanel Inhalt aktualisiert nach Thread.sleep nicht Spiele- und Multimedia-Programmierung 2
S Thread und jpanel-paintcomponent kombinierbar?? Spiele- und Multimedia-Programmierung 14
Kenan89 Alternative zu Thread Runnable Spiele- und Multimedia-Programmierung 2
O Universe <- show Thread Spiele- und Multimedia-Programmierung 14
Y Warum Thread für Spieleprogrammierung? Spiele- und Multimedia-Programmierung 27
C ***** bitte thread löschen *** Spiele- und Multimedia-Programmierung 3
A KeyListener - Thread Problem Spiele- und Multimedia-Programmierung 2
D Snake n+1-Thread Spiele- und Multimedia-Programmierung 2
B Applet startet, aber führt den Thread nicht aus Spiele- und Multimedia-Programmierung 7
S Ein Thread für alle Animationen oder mehrere? Spiele- und Multimedia-Programmierung 2
G Thread startet nicht im Vollbild modus Spiele- und Multimedia-Programmierung 3
E TetrisApplet Thread Hilfe Spiele- und Multimedia-Programmierung 6
Developer_X Thread in Java3D Spiele- und Multimedia-Programmierung 8
D Methode in eigenem Thread auslagern Spiele- und Multimedia-Programmierung 9
S Probleme mit Thread beim Streaming Spiele- und Multimedia-Programmierung 1
F Problem mit Thread.sleep() Spiele- und Multimedia-Programmierung 7
Tapsi Thread wartet auf Threads Spiele- und Multimedia-Programmierung 7
M Thread.sleep() problem Spiele- und Multimedia-Programmierung 10
0 Workaround für Thread.sleep()-Bug Spiele- und Multimedia-Programmierung 15
M Roundbased - Thread anhalten Spiele- und Multimedia-Programmierung 8
D Wasserstrahl animieren: ein Thread je Tropfen? Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen

Neue Themen


Oben