Android: Angry Birds Scaling

11

У кого-нибудь есть идеи, как осуществляется масштабирование у злых птиц? Я хочу убедиться, что мои изображения / фон всегда масштабируются, чтобы соответствовать размеру экрана, и эта игра, похоже, имеет аналогичный эффект. Я много играл с настройками манифеста при настройке предпочтительных размеров экрана, но мне еще не удалось воспроизвести именно то, что я хочу.

Существуют ли какие-либо эффективные способы обеспечения того, чтобы ваша игра всегда отображала пространство XY, уменьшая при необходимости в зависимости от размера пикселя?

Я хочу убедиться, что все устройства всегда отображаются на экране для всех устройств, а не обрезать их на маленьких устройствах или добавлять черное пространство на больших устройствах.

Я расчет моего рисунка пространства, получая размер представления и используя это в качестве рамки для моих спрайтов, но не кажется, что это будет работать очень хорошо.

навсегда
источник

Ответы:

6

Чтобы ответить на исходный вопрос, Angry Birds использует обычную растровую графику (а не векторы). Просто распакуйте .apk (это zip-файл) и посмотрите сами на текстуры.

Angry Birds только мешает вам установить коэффициент масштабирования более 1.x, тем самым избегая масштабирования (увеличения) текстур. Вероятно, он также использует OpenGL Mip-Mapping, чтобы избежать артефактов уменьшения (минимизации).

Хулио Горге
источник
Объясняет, почему существует / была отдельная версия HD.
Мэтью Прочитал
4
  1. Используйте векторную графику . Векторы не определяются точками в пространстве (то есть отдельными пикселями), они определяются математическими соотношениями и легко адаптируются к меньшим или большим изображениям.

  2. Например, невозможно отобразить одно и то же изображение на экране с соотношением сторон 4: 3 и с соотношением сторон 16: 9 без сжатия или растяжения изображения. Таким образом, вам придется обрезать вещи на устройствах 4: 3, которые будут отображаться на широкоэкранных устройствах 16: 9. Это не плохая вещь в игре вроде Angry Birds, где пользователь может перемещаться, чтобы увидеть, чего не хватает.

Мэтью Рид
источник
1

На платформе Android есть:

  • 320 * 240 (1,33)
  • 400 * 240 (1,66)
  • 480 * 320 (1,5)
  • 800 * 480 (1,66)
  • 854 * 480 (1,77)
  • 1024 * 600 (1,71)

Итак, когда вы разрабатываете свою игру в 2D, вы должны думать об этом. У вас есть два технических решения:

  • выберите соотношение (наиболее распространено 1,66) и используйте черные полосы (например, фильмы)
  • Выберите ограничивающий прямоугольник, в котором вы не можете уменьшить масштаб, и еще один для увеличения.

Я использую этот метод для Moblox и рисования уровней с этими коробками. Для лучшего рендеринга на большинстве телефонов мои ограничивающие рамки имеют коэффициент 1,66. В телефонах с соотношением 1,33 или 1,77 фоновые элементы не видны, но я разработал свой уровень с центрированными действиями. Так что игрокам все равно.

Эллис
источник