Timer

xyss

Aktives Mitglied
Moin, ich hab's nicht so mit Timern, daher frage ich mal hier:

Java:
if (damageProtectionActive){
			dmgProtectTimer = new Timer();
	        TimerTask task = new TimerTask() {
	            @Override
	            public void run() {
	            	damageProtectionActive = false;
	            }
	        };
	        dmgProtectTimer.schedule(task, 2000);
		}

Der Timer soll bewirken, dass man für 2 Sekunden keinen Schaden mehr bekommen kann. Das soll so laufen dass, sobald man Schaden bekommt, "damageProtectionActive" auf true gesetzt wird, und der Timer stellt die Variable nach 2 Sekunden wieder auf false. Tut der hier beschriebene Timer das? Ich bin noch nicht so ganz hinter die Wirkungsweise der verschiedenen schedule-Methoden gekommen.

lg
 

xyss

Aktives Mitglied
Okay, mein Fehler war ein anderer!
Die DamageProtection-Methode wurde jedes Mal aufgerufen wenn der Spieler sich bewegt hat, das heißt, wenn die damageProtectionActive "true" war, wurden sehr viele Timer gestartet, statt nur einem. Hab es nun so umgebaut:

Java:
if (damageProtectionActivate && !damageProtectionActive){
			damageProtectionActive = true;
			dmgProtectTimer = new Timer();
	        TimerTask task = new TimerTask() {
	            @Override
	            public void run() {
	            	damageProtectionActivate = false;
	            	damageProtectionActive = false;
	            	System.out.println("DEACTIVATED"); 
	            	/*TODO
	            	setzt die Damageprotection immer wieder auf false, während den 2 Sekunden*/
	            }
	        };
	        dmgProtectTimer.schedule(task, 2000); 
		}

Jetzt wird von außen über DamageProtectionActivate festgelegt, ob der Timer gestartet wrden soll, und die Variable damageProtectionActive sorgt dafür, dass solange der Timer einmal läuft, er nicht noch ein 2. Mal gleichzeitig gestartet werden kann.

Danke für deine Antwort & den Link, der hat mir weitergeholfen. :)

"erledigt".
 

Joose

Top Contributor
Achtung, diese beiden Variablen klingen sich sehr ähnlich was beim "raschen drüberlesen" möglicherweise für Verwirrung sorgt. Da beide auch noch den gleichen Datentyp verwenden kann doch schon zu einer Fehlerquelle werden. (Vielleicht fällt dir ja mit der Zeit ein besserer Name ein)
(Das Ganze ist nur ein Hinweis kein Fehler)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Timer terminiert nicht Allgemeine Java-Themen 5
W Timer Konzept-Frage Allgemeine Java-Themen 16
Z Timer Allgemeine Java-Themen 5
H Timer funktioniert nicht? Allgemeine Java-Themen 3
Tacofan Kurzer Timer Allgemeine Java-Themen 22
B Threads Timer wird immer schneller Allgemeine Java-Themen 6
H Consumer (Java8 Lambda) an Timer übergeben Allgemeine Java-Themen 2
wolfgang63 Best Practice Taktgeber oder Timer mit variablem Intervall Allgemeine Java-Themen 1
I Timer Allgemeine Java-Themen 1
C Timer? Allgemeine Java-Themen 8
U Timer - Timertask endet nicht Allgemeine Java-Themen 4
X timer.schedule - Allgemeine Java-Themen 7
D Simpler Timer zum warten Allgemeine Java-Themen 19
H java.util.Timer und Funktion mit SQL Exception Allgemeine Java-Themen 5
G Threads Timer wird unterbrochen Allgemeine Java-Themen 20
P Java Timer Allgemeine Java-Themen 3
K Timer Thread Allgemeine Java-Themen 8
E Wie Timer anbringen mit Designer in Netbeans Allgemeine Java-Themen 5
M Ampelsteuerung über Timer in Java realisieren Allgemeine Java-Themen 3
O Timer pausieren Allgemeine Java-Themen 5
M Timer von nicht existiertem Objekt stopen Allgemeine Java-Themen 5
B util.Timer zu langsam? Allgemeine Java-Themen 3
P Java Timer Allgemeine Java-Themen 2
S Timer in Applet? Allgemeine Java-Themen 11
G Swing Timer führt Methode nicht aus Allgemeine Java-Themen 2
V Frage zu util.Timer (-> TimerTask) Allgemeine Java-Themen 2
P Swing Eine Sekunde warten (Timer) Allgemeine Java-Themen 7
E Timer class macht einfach garnichts :/ Allgemeine Java-Themen 6
T Timer oder Alternative? Allgemeine Java-Themen 3
Z Timer -> Thread jeden Tag ausführen Allgemeine Java-Themen 5
D Probleme mit einem Timer Allgemeine Java-Themen 6
E Timer - gleichen Task mehrfach planen Allgemeine Java-Themen 2
D Timer oder Thread, das ist hier die Frage Allgemeine Java-Themen 3
A TimerTask - Task stoppen - timer.cancel() funktioniert nicht Allgemeine Java-Themen 8
S Problem mit einem Timer (Aktualisierung etc.) Allgemeine Java-Themen 2
B Timer übergabe Allgemeine Java-Themen 3
G Timer abbrechen und neu starten Allgemeine Java-Themen 3
G timer mit buttondruck abbrechen Allgemeine Java-Themen 7
T Timer oder ähnliches? Allgemeine Java-Themen 3
O Timer und TimerTask: Programm terminiert nicht! Allgemeine Java-Themen 3
O Thread als Timer Interrupt Allgemeine Java-Themen 2
C Timer.scheduleAtFixedRate(). Allgemeine Java-Themen 5
H gibts in Java sowas wie in Visual Basic den Timer? Allgemeine Java-Themen 5
B 24 Uhr Timer Task Allgemeine Java-Themen 5
G Timer nur 64 mal pro Sekunde? Allgemeine Java-Themen 18
S Frage zu jTDS, JAVA allgemein und Timer Allgemeine Java-Themen 6
L Problem mit Timer Allgemeine Java-Themen 7
J Timer-Objekt / Task-Zustand ermitteln Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben