2017-01-03 3 views
1

У меня есть приложение kha, которое отлично работает на iPad2 (1024/768 пикселей).Масштабирование kha-приложения для сетчатки на iPad

Когда я запускаю тот же проект на более позднем iPad Mini с 2048/1516. Мои координаты имеют половину размера, что имеет смысл.

Поэтому, когда я удваиваю размеры моих объектов и GFX, он будет работать на iPad mini, но будет слишком большим для iPad2.

Я посмотрел в BackBuffer и RenderTarget, как описано здесь: https://www.youtube.com/watch?v=OV1PTo5XSCA

Существует также вариант windowSize в khafile, который, кажется, ничего не делать.

Поверхность x и y coodains всегда, кажется, входят в реальные экраны устройства.

Каков наилучший способ написать независимое от разрешения приложение?

Идеал был бы способом, который является сетчаткой или не сетчаткой, в зависимости от устройства, где код остается неизменным.

+1

Scaler.scale() рекомендуется с помощью виджета Kha. Ознакомьтесь с http://jamiltron.com/2015/12/KhaShmup-Tutorial-Part-1/для простого примера. –

+0

Я пробовал это, поэтому в основном был закодирован для разрешения не сетчатки и затем увеличен. Но х-у-координаты обработчика касаний смутились с ним. очень pixela на сетчатке-ipad. Если я код для высокого разрешения, у меня будет слишком много gfx-обработки для старого не-сетчатки iPad. – RedRoosterMobile

ответ

2

В соответствии с https://github.com/Kode/Kha/wiki/Screen-Size-and-Scaling есть автоматическое масштабирование для некоторых целей. Если вам нужны другие цели, вам нужно вручную масштабировать все, чтобы они соответствовали экрану.

страница упоминает, используя этот класс для выполнения этой задачи: https://github.com/Kode/Kha/blob/master/Sources/kha/Scaler.hx

Кроме того, вы могли бы взглянуть на то, как Wyngine делает это: https://github.com/laxa88/wyngine/search?utf8=%E2%9C%93&q=scale & https://github.com/laxa88/wyngine/blob/master/Wyngine.hx

Вы ответили (на мой комментарий), что масштабирование WASN» достаточно. Пока этого было достаточно для всех моих игр с правильными настройками отображения, но если вам действительно нужна графика размера сетчатки, у вас всегда есть возможность использовать несколько графических наборов. Например:

  • набор для сетчатки глаза resultion (например IPAD 3)
  • разрешения по умолчанию (например, IPad 2) установлен в размере половины сетчатки
  • низкого разрешения набор для дешевых андроид устройств?

При запуске приложения вы проверяете размер экрана. Вы используете это, чтобы выбрать размер внутренней игры и набор графических элементов, который лучше всего соответствует реальному разрешению экрана. Внутренний размер игры, а также все позиции X/Y для выбранного графического набора можно рассчитать, применяя масштабный коэффициент графических наборов к исходным базовым значениям.

Наконец вы используете Scale.scale(), чтобы масштабировать вашу игру от внутреннего размера игры, чтобы соответствовать устройств, таких как IPad Pro 12" и широкий спектр Android устройств.

Этот подход является общим с большим количеством игровые движки, google должен найти вам ссылки, такие как https://v-play.net/doc/vplay-different-screen-sizes/, которые также объясняют отношение экрана и то, как они могут обрабатываться.

Смежные вопросы