2016-07-12 5 views
0

Hey Kollegen Entwickler,Android Leaderboard mit zwei Variablen

Ich habe ein Spiel in Android Studio programmiert und ich möchte eine Rangliste dafür einrichten. Wie es sich anbietet, würde ich gerne das Google Leaderboard verwenden.

Der Rang eines Spielers hängt jedoch von zwei Variablen ab. Um das Spiel zu beenden, muss der Spieler bestimmte Züge ausführen. Je weniger Bewegungen er braucht, desto besser wird er. Dies würde dazu führen, dass zu viele Spieler mit der gleichen Anzahl an Zügen spielen. Es gibt also eine andere Variable: die Zeit, die der Spieler braucht, um diese Züge zu machen (es ist ein Puzzle-Spiel, also muss er über die Züge nachdenken).

Die Bestenliste sollte die Spieler nach ihrer Anzahl der Züge sortieren. Wenn 2 Spieler die gleiche Anzahl Züge haben, hängt es von der Zeit ab, wer höher platziert ist. Ist das mit der Google Play-Bestenliste möglich? Wenn ja, wie kann ich das umsetzen? Wenn nicht, haben Sie einen anderen Vorschlag/Empfehlung?

Ich dachte auch über die Berechnung einer Punktzahl, die von den Bewegungen und der Zeit abhängt und dann diese Punktzahl für die Rangliste verwenden, aber dies wäre nur meine zweite Wahl.

Ich freue mich über alle nützlichen Kommentare und Antworten.

Prost!

+0

Warum machst du beides nicht? Die Anzahl der Züge und die Zeit, die benötigt wird, und die Zeit ist Ihr zweiter Wert für die Berechnung des Rangs, da sie mit der Effizienz eines Spielers verbunden ist. – Pztar

+0

Danke für den Kommentar Pztar, aber was genau meinst du? Das möchte ich realisieren: Eine Rangliste, die beide Werte verwendet, um den Rang zu berechnen. Die Frage ist, wie kann ich das mit der Google Play-Bestenliste machen? Oder meinst du, implementieren Sie zwei verschiedene Bestenlisten (eine mit Zügen, eine mit der Zeit)? – Omega

Antwort

0

Ich habe Google Leaderboards nicht verwendet, aber das Konzept ist einfach genug. Warum erstellen Sie nicht einfach ein Aggregat Score Variable? Dann können Sie die Rangliste nach der Punktzahl sortieren, anstatt zwei separate Variablen.

Sie können dies mit einer inversen Funktion tun, sollte etwas ähnliches wie answer funktionieren.

Auch, was ich schnell auf der Google Leaderboards Dokumentation gelesen habe, sollten Sie in der Lage sein, eine Rangliste für jede Metrik zu haben. Eine für die verstrichene Zeit und eine für die durchgeführten Züge (beide sortiert am größten). Dann noch eine für die Partitur, sortiert am größten bis am wenigsten.

+0

Danke für die Antwort Bryan, es ist tatsächlich, was ich im Moment implementiert habe, es sind nur ein paar Zeilen mehr Code, also habe ich es als eine Übergangslösung gemacht, aber ich hätte lieber eine Bestenliste mit 2 Variablen. Hier ist es nicht der Punkt, aber imo ist es für den Benutzer transparenter und bequemer. – Omega

+0

@Omega Ich sehe was du sagst. Ich habe mir die Dokumentation kurz angesehen, es scheint, als ob Sie in der Lage sein sollten, die Daten von jeder erstellten Bestenliste zu laden. Es mag schwierig sein, aber Sie sollten in der Lage sein, die Daten aus einer "Zeit", "Moves" und "Scores" Bestenliste zu laden, dann die Daten nach dem Score-Wert zu sortieren und nur die "Zeit" und "Moves" -Daten anzuzeigen (oder alle drei). Wieder habe ich nur kurz geguckt, aber das wird hoffentlich in die richtige Richtung weisen. – Bryan