![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 06.11.2007
Beiträge: 1
|
Hallo,
mir geht es darum, mit einem Applet ein Brettspiel zu simulieren. Für den Spieler ist es dabei desorientierend, wenn der Computer in wenige Millisekunden auf seinen Zug reagiert. Deshalb würde ich gerne einen Zeitverzug nach dem Zug des Spielers einbauen. Ich finde aber nicht heraus, wie ich einen Thread so verwenden kann, dass er nur nach einer Aktion des Benutzers schläft. Falls jemand weiter weiß, wäre das toll. |
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 491
|
Was du zwischen Applet und Thread interagieren möchtest, versteh ich jetzt nicht so ganz. Und ich weiß auch nicht, wie dein Applet aufgebaut ist.
Ich würde das einfach so machen, dass jede Benutzeraktion irgendwie über einen ActionListener läuft und der dann den Thread für eine bestimmte (bzw. am besten eine leicht variierende) Zeit schlafen lässt (Thread.sleep()) und danach die Computerhandlung startet. Noch besser könntest Du den menschlichen Denkvorgang simulieren, wenn zur Berechnung der Computerhandlung eine lastabhängige Schleife/Rekursion benutzt wird (Davon gehe ich einfach mal aus), dass sich der Computer also schneller für eine einfache, einleuchtende Handlung "entscheidet" als für eine komplexe, schwierige Entscheidung; dann könnte einfach jeder Schleigendurchlauf eine kleine Verzögerung bringen.
__________________
Weißt Bescheid - Scheiß wie weit |
|
|
|
|
|
Nach oben #3 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.083
|
Wobei du aufpassen solltest, dass du den Spaß nicht übertreibst. Macht dem Spieler wohl kaum Spaß, darauf zu warten, dass der Computer reagiert.
Die sinnvollste Technik dürfte es sein, das Spielfeld nach der Benutzeraktion zu sperren (damit er nicht mehr agieren kann) und dann via javax.swing.Timer erst nach einer bestimmten Zeit (z.B. 500ms) die Computeraktion auszuführen und anschließend das Spielfeld wieder freizugeben. Das verhindert, dass der Benutzer den Eindruck gewinnt, dass dein Programm "eingefroren" ist (in Windows-Sprace: "Programm reagiert nicht"). |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Java Applet soll Daten an ein PHP Script senden | flanger | Allgemeine Java-Programmierung | 5 | 16.05.2007 16:52 |
| Problem bei der Einbindung eines Applets in HTML | exoskelett | Desktop-Applikationen und Grafik | 13 | 24.01.2006 18:45 |
| applet wird nicht angezeigt | function | Desktop-Applikationen und Grafik | 4 | 31.10.2005 12:48 |
| Thread in Applet wird nicht gestartet? | Ben | Desktop-Applikationen und Grafik | 2 | 26.10.2005 20:33 |
| Policy Datei für Applet konfigurieren | bobcho | Desktop-Applikationen und Grafik | 14 | 28.06.2005 21:59 |