2017-01-03 3 views
1

Ich habe eine Kha-App, die perfekt auf einem iPad2 (1024/768px) läuft.Skalierung einer Kha-App für Retina auf dem iPad

Wenn ich das gleiche Projekt auf einem späteren iPad Mini mit 2048/1516 laufen. Meine Koordinaten sind alle halb so groß, was irgendwie Sinn macht.

Also wenn ich alle Größen meiner Objekte und GFX verdoppeln, wird es auf dem iPad mini funktionieren, wird aber zu groß für iPad2.

sah ich in einen Backbuffer und eine renderTarget wie hier erklärt: https://www.youtube.com/watch?v=OV1PTo5XSCA

Es gibt auch die Option Fenstergröße in khafile, die nichts zu tun scheint.

Oberflächen-X- und -Y-Koordinaten scheinen immer in realen Bildschirmkoordinaten des Geräts zu erscheinen.

Was ist der beste Weg, eine auflösung unabhängige App zu schreiben?

Perfekt wäre ein Weg, der entweder Retina oder nicht-Retina ist, je nach Gerät, wo der Code gleich bleibt.

+1

Scaler.scale() wird von Kha Wiki empfohlen.Auschecken http://jamiltron.com/2015/12/KhaShmup-Tutorial-Teil-1/für ein einfaches Beispiel –

+0

Ich habe das versucht, also im Grunde für nicht Retina-Auflösung codiert und dann hochskaliert, aber die x, y-Koordinaten des Touch-Handlers wurden damit verwechselt sehr pixela auf Retina-Ipad. Wenn ich für hohe Auflösung kodiere, habe ich zu viel gfx-Verarbeitung für das alte iPad ohne Netzhaut. – RedRoosterMobile

Antwort

2

Nach https://github.com/Kode/Kha/wiki/Screen-Size-and-Scaling gibt es eine automatische Skalierung für einige Ziele. Wenn Sie andere Ziele benötigen, müssen Sie alles manuell an den Bildschirm anpassen.

Die Seite erwähnt für die Aufgabe der Verwendung dieser Klasse: https://github.com/Kode/Kha/blob/master/Sources/kha/Scaler.hx

auch einen Blick auf, man könnte, wie Wyngine tut es: https://github.com/laxa88/wyngine/search?utf8=%E2%9C%93&q=scale & https://github.com/laxa88/wyngine/blob/master/Wyngine.hx

Sie antwortete (zu meinem Kommentar), dass wasn Skalierung‘ t genug. Bis jetzt war es genug für alle meine Spiele mit den richtigen Display-Einstellungen, aber wenn Sie wirklich Retina Größe Grafiken benötigen, haben Sie immer die Möglichkeit, mehrere Grafik-Sets zu verwenden. ZB:

  • ein Set für Retina resultion (zB iPad 3)
  • eine Standardauflösung (zB iPad 2) auf halber Retina Größe eingestellt
  • eine niedrige Auflösung für billige Android-Geräte eingestellt?

Beim Start Ihrer App überprüfen Sie die Bildschirmgröße. Sie verwenden das, um die interne Spielgröße und den Grafiksatz zu wählen, der der tatsächlichen Bildschirmauflösung am besten entspricht. Die interne Spielgröße sowie alle X/Y-Positionen für den ausgewählten Grafiksatz können berechnet werden, indem der Skalierungsfaktor der Grafiksätze auf die Rohbasiswerte angewendet wird.

Schließlich verwenden Sie Scale.scale() Ihr Spiel aus der internen Spielgröße zu skalieren Geräten wie die iPad Pro 12" und die Vielzahl von Android-Geräten zu passen.

Dieser Ansatz ist häufig mit vielen Game Engines, Google sollte Sie finden Links wie https://v-play.net/doc/vplay-different-screen-sizes/, die auch Bildschirmverhältnisse zu erklären, und wie diese gehandhabt werden können

Verwandte Themen