Wie kann ich mein Android-Spiel für verschiedene Handyauflösungen entwickeln?


18

Zum Beispiel ist das Motorola Droid so breit wie das G1, hat aber mehr Höhe.

Sollte ich versuchen, die Benutzeroberfläche über die zusätzliche Höhe des Motorola Droid zu verteilen? Wie gehen andere mit diesem Problem um?

Ich verwende kein OpenGL, sondern ein SurfaceView für ein 2D-Spiel.

Antworten:


7

Beachten Sie die Dichteunabhängigkeit (im Grunde genommen Auflösung), die hier beschrieben wird: http://developer.android.com/guide/practices/screens_support.html

Wählen Sie in Bezug auf das Seitenverhältnis das minimale Zielseitenverhältnis und gestalten Sie es als eine Art sicheren Rahmen. Wenn Sie mit einem größeren Seitenverhältnis konfrontiert werden, zeigen Sie mehr vom Spiel, was für das Gameplay nicht kritisch ist. Ich habe hier eine ähnliche Frage gestellt und beschrieben, was ich tun würde: Wie nähern Sie sich der Unabhängigkeit der Auflösung bei rasterbasierten Grafikinhalten?


3

Du kannst die dynamische Auflösung machen, die ich hier auf dem iPhone zeige:

http://www.blog.namar0x0309.com/2011/10/adaptive-resolution/

  • Stellen Sie sicher, dass Sie alles mit Verhältnissen platzieren. Zum Beispiel würde ein Integritätsbalken bei 80% der Bildschirmbreite platziert, bei 10% der Bildschirmbreite für die horizontale Skalierung (siehe Abmessungen des CSS-Stils). Am Anfang ist es etwas seltsam, aber Sie müssen sich auf lange Sicht nicht mit all den unterschiedlichen Auflösungen auseinandersetzen, da sich Ihre Widgets / Bilder dynamisch mit unterschiedlichen Bildschirmen bewegen.

  • Wenn Ihr Spiel Picking verwendet, übersetzen Sie dies auch mit Verhältnissen (Sie benötigen ein Original-Set-Maß, das Sie als Referenz verwenden können, um Verhältnisse mit den Geräteabmessungen zu erstellen.


Der Artikel ist nicht mehr erreichbar!
Bottleboot

Ich habe es gerade versucht und arbeite an meinem Ende. Aktualisierung? Vielleicht hat mein Hosting-Unternehmen seine Server neu gestartet. @bottleboot
namar0x0309


1

Wenn Sie Eclipse verwenden, können Sie Bilder in verschiedenen Größen in die Formate "Drawable-LDPI", "Drawable-MDPI" und "Drawable-HDPI" einfügen. Die Android-Engine wählt dann automatisch, welches Bild für die Bildschirmauflösung geeignet ist.


2
Was hat Eclipse damit zu tun?
notlesh

1

Keyframe erwähnt einen guten Ansatz, aber ich werde zwei weitere anbieten:

1) Gestalte dein Spiel für mehrere Auflösungen / Seitenverhältnisse. Die Idee ist, jeden Teil der Bildschirmfläche zu nutzen, aber alle Vorteile, die ein Seitenverhältnis gegenüber einem anderen hat, zu "entwerfen". Abhängig von der jeweiligen Partie haben unterschiedliche Seitenverhältnisse möglicherweise immer noch einen Vorteil gegenüber anderen. Sie sollten dies also bei Dingen wie Matchmaking im Mehrspielermodus, Bestenlisten, Erfolgen usw. berücksichtigen, wenn eines davon relevant ist.

2) Nutzen Sie den zusätzlichen Platz für mehr HUD / Chroming. Ziemlich genau das, was Keyframe gesagt hat, sofern eine Grundlinie oder Mindestauflösung unterstützt wird, aber stattdessen den zusätzlichen Platz für etwas anderes als die Spielaktion verwenden.

Der große Nachteil des zweiten Ansatzes besteht darin, dass Sie eine Menge nicht verwendeter / ungewollt verwendeter Pixel in einem Breitbild-Setup belassen, wenn Sie etwas sehr Quadratisches als "sichere Zone" verwenden.


-2

Durch die Auswahl der optimalen Auflösung für ein Spiel zu Beginn der Entwicklung können später beim Portieren Kopfschmerzen verringert werden.

Die "beste" Auflösung hängt von vielen Faktoren ab:

- Auf der Plattform soll das Spiel zuerst veröffentlicht werden

-Weitere mögliche Plattformen, auf die Sie später portieren möchten

-Grafische Wiedergabetreue (Ein 8-Bit- oder Pixel-Art-Spiel muss nicht hochauflösend sein.)

-Genre (Ein Puzzlespiel kann wahrscheinlich mit einer niedrigeren Auflösung durchkommen, ein schnelles, wettbewerbsfähiges FPS jedoch möglicherweise nicht.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.