Was ist der beste Weg, Countdown-Timer für Punkte in Android-Spiel zu implementieren, zB: der Benutzer verliert alle Punkte & er erhält 5 Punkte nach 1 Stunde. wie dies zu implementieren, unter Berücksichtigung, dass die App zerstört werden könnte & die verbleibende Zeit für die 5 Punkte wird in der App während des Betriebs sichtbar sein! hinweis: das spiel ist einfach nicht mit motor nur android rein.Countdown-Timer in Android-Spiel für Punkte
Antwort
Läuft die Zeit "rennt", während der Benutzer nicht im Spiel ist oder nicht? Wenn es auch im Hintergrund "läuft", speichern Sie einfach die Startzeit des Spiels und berechnen Sie alles daraus (duration = *now* - start_time;
).
Wenn der Timer im Hintergrund stoppt, speichern Sie die Gesamtdauer mit einiger angemessener Genauigkeit (1s kann ausreichen, wenn Boni sich pro Stunde ändern) und session_start in onGameResume speichern und die Dauer in onGameStop neu berechnen von duration += *now* - session_start
.
Programmierhinweis: Immer wenn Sie mit "Zeitstempel" arbeiten, verwenden Sie die UTC-Zeit [für Speicher und Berechnungen] (keine Benutzerzeitzone, da sie sich leicht ändern kann, wenn der Benutzer/etc reist). Die Zeitzonen-angepassten Daten und Zeiten sind "Ansichtsformatierung", die vor der Anzeige des Wertes durchgeführt werden, nicht Teil des Wertspeichers.
Eine solche einfache Implementierung ist leicht zu betrügen, indem die Gerätezeit manuell geändert wird, bevor das Spiel ausgeführt wird. Für den Fall, dass es eine etwas kompetitivere Herausforderung ist, können Sie einige verschleierte Schutzmechanismen hinzufügen, wie das Speichern von Daten, die bereits geschehen sind, und sie für einige Heuristiken verwenden, um Manipulationen zu erkennen (aber beachten Sie, dass das Gerät leicht + mehrere Minuten pro Sprung gehen kann) falls es RTC ist sehr ungenau, Batterie wurde für längere Zeit aufgebraucht, oder Benutzer in seltsame Zeitzone reisen (IIRC gibt es einige mit + -30min Offset), und erfahrene Hacker wird auch deaktivieren Sie Ihre zusätzlichen Schecks sowieso, also nicht ausgeben zu viel Mühe darauf, jemand wird es betrügen).
- 1. android - CountDownTimer in ProgressDialog
- 2. Konstruktor CountDownTimer in Klasse CountDownTimer kann nicht auf bestimmte Typen
- 3. Android CountDownTimer
- 4. CountDownTimer-Dienst
- 5. Wie CountDownTimer korrekt in Aktivität
- 6. Android Editierbare CountDownTimer Problem
- 7. Anhalten/Fortsetzen CountDownTimer Android
- 8. Kann CountDownTimer nicht stoppen
- 9. Mocking CountDownTimer und Handler
- 10. Continuous CountDownTimer Loop
- 11. Aufruf von countDownTimer
- 12. Abbrechen CountDownTimer Android Java
- 13. Android, CountDownTimer Latenz
- 14. prüft CountDownTimer läuft
- 15. ändern CountDownTimer Klasse Standardanimation
- 16. CountdownTimer startet nicht
- 17. Wie kann countDownTimer in UIDatePicker eingeschränkt werden?
- 18. TRIGGER Für Punkte
- 19. Android CountDownTimer wird nicht abbrechen
- 20. Probleme mit .cancel() in Android CountDownTimer
- 21. Android: Fortschrittsbalken über CountDownTimer aktualisieren
- 22. Jquery countdownTimer Plugin funktioniert nicht
- 23. Stoppen und starten Sie CountDownTimer
- 24. Gibt es trotzdem die Punkte für Punkte aus AngularJS Charts
- 25. macht Plots, die auch Punkte zeigen/Punkte für bestimmte Koordinaten
- 26. Wie benutze ich timeLeft für resume countdowntimer auf Android?
- 27. Verwenden von Bildern für Punkte in gnuplot
- 28. Rahmen für Punkte in UIPageControl hinzufügen
- 29. Schleife für Punkte in 2D Dreiecken
- 30. Plot Punkte für Image Map