Sagen wir, ich möchte eine Schleife oder etwas, das zum Beispiel "Mario" jede Sekunde ausgibt. Wie kann ich das machen? Ich kann nicht scheinen, irgendwelche guten Tutorien zu finden, die das überall unterrichten = PWie kann ich jede Sekunde etwas tun? [LibGDX]
Antwort
Sie können java.util.Timer verwenden.
new Timer().scheduleAtFixedRate(task, after, interval);
Aufgabe ist die Methode, die Sie, nachdem ausführen wollen, ist die Zeit bis zur ersten Ausführung und Intervall ist die Zeit zwischen Ausführungen der vorgenannten Aufgabe.
Es gibt auch eine Alternative ohne Zeit, indem Sie die Delta-Zeit addieren, bis sie über 1000 ist, und dann die Methode ausführen und den Timer neu setzen. (Tun Sie dies innerhalb des Render oder Akt eines Schauspielers) – BennX
Wie @BennX sagte, können Sie die delta
Zeit, die Sie in Ihrer Rendermethode haben, zusammenfassen oder durch Aufruf von Gdx.graphics.getDeltaTime();
abrufen. Wenn es größer ist als 1
(delta
ist ein float
, geben Sie die Sekunden, seit das letzte Bild gezeichnet wurde), können Sie Ihre Aufgabe ausführen. Anstatt den Timer mit timer = 0;
zurückzusetzen, können Sie ihn mit timer -= 1
dekrementieren, damit Ihre Aufgaben genauer ausgeführt werden. Also, wenn 1 Aufgabe nach 1.1 seconds
, Ursache von wirklich große delta
das nächste Mal wird es nach etwa 0.9
Sekunden ausgeführt wird. Wenn Sie die delta
Zeitlösung nicht mögen, können Sie Libgdx-Timer anstelle von java.util.Timer verwenden. Ein Beispiel dafür:
Timer.schedule(new Task(){
@Override
public void run() {
doWhatEverYouWant();
}
}
, delay // (delay)
, amtOfSec // (seconds)
);
Dies führt die doWhatEverYouWant()
Verfahren nach einer Verzögerung von delay
und dann alle seconds
Sekunden. Sie können ihm auch einen dritten Parameter numberOfExecutions
geben und ihm mitteilen, wie oft die Aufgabe ausgeführt werden soll. Wenn Sie diesen Parameter nicht angeben, wird die Aufgabe "für immer" ausgeführt, bis sie abgebrochen wird.
Ich habe die TimeUtils von libgdx verwendet, um meinen Splashscreen nach 1,5 Sekunden zu ändern. Der Code war so etwas wie folgt aus:
initialize:
long startTime = 0;
in create-Methode:
startTime = TimeUtils.nanoTime();
gibt den aktuellen Wert des Systemzeitgeber, in Nanosekunden.
in Aktualisierungs- oder Render-Methode:
if (TimeUtils.timeSinceNanos(startTime) > 1000000000) {
// if time passed since the time you set startTime at is more than 1 second
//your code here
//also you can set the new startTime
//so this block will execute every one second
startTime = TimeUtils.nanoTime();
}
- , sich den Libgdx API: TimeUtils
Aus irgendeinem Grund meine Lösung elegantere mir seemes, dass die hier angebotenen :)
- 1. Wie verwende ich time.sleep und mache jede Sekunde etwas anderes
- 2. Update Chat Jede Sekunde
- 3. Wie man ein Wort jede Sekunde druckt?
- 4. Wie führe ich jede Sekunde eine Funktion aus?
- 5. Python: Etwas für jede Methode einer Klasse tun?
- 6. SyncAdapter - Wie man jede Sekunde periodisch synchronisiert
- 7. Android: Wie API-Daten jede Sekunde aktualisieren
- 8. Drucken Array-Element jede Sekunde
- 9. Python läuft nicht jede Sekunde
- 10. Wie mache ich n mal pro Sekunde etwas?
- 11. Dauer # toMinutes in Runnable jede Sekunde
- 12. JSF 2: Kann EL so etwas tun?
- 13. Select, Option etwas tun
- 14. Ändern Hintergrundbilder jede Sekunde jQuery Javascript
- 15. Laravel Schedular: Ausführen eines Befehls jede Sekunde
- 16. kann mit Laravel jede x Sekunde eine Aufgabe ausführen?
- 17. Wetterstation Datenbank-Design, erhalten jede Sekunde Sensordaten
- 18. wie so etwas in sqlalchemy zu tun?
- 19. Kann SVN so etwas wie Git Filterattribute tun?
- 20. etwas tun, wenn Ansicht Lasten
- 21. Einfache Wecker und Zeit überprüft jede Sekunde
- 22. Node.js PM2 startet fast jede Sekunde neu
- 23. Push-Benachrichtigung für jede Sekunde wiederholen
- 24. etwas tun, wenn alle deferreds
- 25. In Swift alle x Minuten etwas tun
- 26. Wenn Array isset, etwas tun?
- 27. Android-Schaltfläche nicht etwas tun
- 28. Wie wird eine WPF-Bindungsaktualisierung jede Sekunde durchgeführt?
- 29. Wie kann ich etwas tun, bevor ich meine Android App deinstalliere?
- 30. Wie man eine Methode benennt, die etwas tun oder nicht tun kann?
Wie wäre es mit http://StackOverflow.com/Questions/12908412/Print-Hello-World-Every-x-Seconds? – snrlx
Verwenden Sie AsyncTask, Threads oder Dienste, wenn Sie das Beste von Android bekommen möchten. Aber wenn Sie nur "Hallo Mario" oder etwas anderes ausdrucken möchten, googeln Sie mehr. – 3yanlis1bos