2016-05-28 12 views
0

In meinem libgdx Spiel muss ich eine Reihe mit 8 bis 14 runden Knöpfen anzeigen.Knopfgröße so groß wie eine Fingerspitze einstellen in libgdx

Ich bin auf der Suche nach dem besten Weg, um sicherzustellen, dass alle Tasten mindestens die Größe einer Fingerspitze (zwischen 0,8 und 1 mm), aber nicht viel größer sind, weil ich will, dass sie in den Bildschirm ohne Scrollen wenn es passt ist möglich.

Ich habe mehrere mögliche Lösungen gefunden, aber ich weiß wirklich nicht, was das Beste ist, oder wenn ich etwas fehlt besser:

  • Verwenden Sie ein ExtendViewport, mit 480x360 virtuelle Größe zum Beispiel , und finden Sie eine geeignete Größe für die Tasten. Dies ist am einfachsten zu implementieren, aber das Ergebnis variiert je nach Bildschirmdichte, Größe und Seitenverhältnis.

  • Verwenden Sie einen StretchViewport, fixieren Sie nur die Breite der Schaltflächen und berechnen Sie ihre Höhe zur Laufzeit mit dem Geräte-Seitenverhältnis, um sie rund zu halten. Dies hängt auch von der Bildschirmdichte und -größe ab, nicht aber vom Seitenverhältnis.

  • Verwenden Sie die Gerätedichte und die physische Größe, um zur Laufzeit die Größe der Schaltflächen zu berechnen. Dies scheint ein besserer Ansatz zu sein, um die Buttons in der richtigen Größe zu bekommen, ist aber viel komplexer und low-level. Daher finde ich es seltsam, dass es keine einfacheren Wege gibt, dies zu tun.

Also, was denkst du, ist der Weg zu gehen?

Antwort

0

Joanq, verwenden Sie das (leicht modifiziert) Vorschlag 2 die meisten Arten von Bildschirmen zu bedecken: eine StretchViewport verwenden, werden nur Breite der Tasten Fix (als Prozentsatz der Gdx.graphics.getWidth()), und berechnen ihre Höhe zur Laufzeit mit dem Geräte-Seitenverhältnis, um sie rund zu halten.

+0

Ich glaube nicht, dass dies funktioniert: Wenn Sie mit den Erweiterungs- oder Stretch-Ansichtsfenstern arbeiten, definieren Sie bereits eine virtuelle Größe, die dann auf die Größe des Geräts skaliert wird. Sie arbeiten also bereits implizit mit einem Prozentsatz der Breite. – joanq

+0

So wird das Ansichtsfenster definiert: new ScalingViewport (Scaling.stretch, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), neue OrthographicCamera()); Das Ansichtsfenster wird der Bildschirmgröße zugeordnet und Sie können einzelne Schaltflächen wie beschrieben skalieren. Wenn Sie implizit alles skalieren, indem Sie das Ansichtsfenster verformen, dann ist die Skalierung einzelner Akteure auf dem Bildschirm eine echte Mission - es sei denn, Sie hacken es irgendwie zusammen. Viel Glück, damit es mit allen Arten von Bildschirmen funktioniert. Ich kann es aus Erfahrung nur empfehlen, es so zu machen, letztendlich liegt die Entscheidung bei Ihnen. Glückliche Tage :-) – WonderfulWorld