2017-12-29 8 views
0

Mein Entwicklerteam erstellt ein Spiel, in dem der Gewinner bis zu 4 Dezimalstellen hat. So beendet der Gewinner beispielsweise eine Aufgabe in 13.9503 Sekunden. Meine Entwickler haben mir jedoch gesagt, dass iOS Entwicklern nur erlaubt, Zeit bis zu 3 Dezimalstellen zu verfolgen. Ist das wahr oder gibt es Workarounds?Timer für ein iOS-Spiel mit 4 Dezimalstellen. Mein Entwicklerteam sagt, dass es unmöglich ist

Danke!

+0

Dies ist überhaupt nicht mein Gebiet, aber ich * dachte *, dass Mikrosekundenauflösung möglich war. Nicht sicher, wie genau es ist - d. H. Ist es eine Untergrenze für die Zeit oder die Echtzeit? – Bathsheba

Antwort

0

Für Spiele sollte Ihr Team func CACurrentMediaTime() -> CFTimeInterval, Millisekunden verwenden, sind Bruchteile des Ergebnisses. Die Nummer kann später in NSDecimalNumber mit fester Darstellung von Dezimal formatiert werden.

2

Ich möchte fragen, warum Sie 4 Dezimalstellen verwenden, als ob Sie ein UILabel 10000 Mal pro Sekunde ändern, würde ich es nicht empfehlen, und wenn Sie nicht sind, dann ist eine einfache Abhilfe Verwenden Sie einen 3 Dezimalstellen-Timer und fügen Sie am Ende eine Zufallszahl hinzu. Obwohl es wie eine schäbige Methode klingt, wird kein menschliches Auge erkennen, dass die 4. Dezimalstelle falsch ist.

+0

Gute Frage. Wir fügen einen vierten Platz hinzu, weil viele Leute gleichzeitig dasselbe Spiel spielen (in Zehntausenden) und vorzugsweise sollte es nur einen Gewinner geben. Je mehr Nachkommastellen wir haben, desto kleiner sind die Chancen für mehrere Gewinner gleichzeitig. Anstatt also zwei Benutzer die Zeit von 12.432 Sekunden zu haben, können wir diesen einen weiteren Schritt hinzufügen, um einen von ihnen bei 12.4327 und den anderen 12.4329 zu zeigen. –

+0

Ok. Gute Antwort. Darf ich vorschlagen, dass Timer sehr ungenau feuern, abhängig von der Verarbeitungsleistung und der Geschwindigkeit des Geräts des Benutzers und davon, wie genau der Timer ausgelöst wird. Ich würde daher empfehlen, dass Sie versuchen, an ein anderes System zu denken. Vielleicht könnten Sie einen Zufallsgenerator verwenden, um den Gewinner auszuwählen, wenn Menschen zeichnen. –

+0

Ich sehe. Wir könnten das in unserer nächsten Version der App untersuchen. Vorerst müssen wir beim Timer bleiben. Aber denkst du, dass deine Lösung, eine Zufallszahl am Ende der 3-dezimalen Zeit zu setzen, die einzig mögliche Lösung ist? Danke, dass du dir Zeit genommen hast! –

Verwandte Themen