Розміри екранів гри на Android

Перш ніж почати розробляти ігри на андроїд, я довгий час робив браузерні flash ігри. Там все легко, поставив розмір 700*525 та все. Коли зіткнувся з андроїдами, то раз натикався на слова, — «Розмір екрану на андроїд — це ціла наука». Так, це наука. Але ми сьогодні розберемо практично один приклад. Я не сказав би, що він ідеальний, але практика показала, що він працює, хоч і не стійко. Але я ним користуюся.

Для початку грубо беремо: - найменший розмір екрану 480 * 800 - найбільший розмір екрану 1300 * 1920 ... і створюємо середній розмір, у мене це 720 * 1280:

розміри

Тепер у нас є 3 розміри екрану: x1, x2, x3.

Далі нам потрібно дізнатися, який у нас розмір екрану, на якому запущено гру (все це робимо, на початку гри)? У flash мовою as3 це: var m_stageW:int = flash.system.Capabilities.screenResolutionX; var m_stageH:int = flash.system.Capabilities.screenResolutionY;

Після дізнаємося розміру екрана в іксах: var m_sizeStageX:int;

if (m_stageH 1280) m_sizeStageX = 3; > else m_sizeStageX = 2; >

У мене 7-дюймовий планшет. Розмір дисплея 600*1024. (У мене змінна m_stageH = 1024). Значить мені m_sizeStageX = 2; Гра буде використовувати для мого планшета графік розміру x2.

Що таке робоча зона?

Робоча зона є тільки x2, x3. Вона позначена зеленим кольором:

android

Все що знаходиться в робочій зеленій зоні x3 має влазити в робочу зелену зону x2:

екранів

Все що знаходиться в робочій зеленій зоні x2 має влазити в екран x1:

екранів

Я використовував 3 розміри графіки, щоб не було втрати якості.Вся графіка малювалася під самийвеликий розмір екрана x3. А потім я ручками зменшував для всіх інших екранів з відношенням: x2 = 70% x1 = 50%

Наприклад, кнопка виходу меню. На найбільшому екрані вона має розмір 100х100 пікселів. Значить, для екрана x2 зменшуємо картинку до 70% і отримуємо 70*70 пікселів. Для екрану x1 вийде 50*50 пікселів. І у результаті у Вас вийде три кнопки. За кожною для кожного екрана.

екрану

Грубо кажучи, Ви робите не одну гру, а одразу три. Адже кожен об'єкт гри потрібно зробити тричі. Але це оптимально для об'єктів, які необхідно виділити. Які на передньому плані, із якими гравець взаємодіє.

Давайте розберемо меню гри. Червоними стрілочками я позначив ті об'єкти, які зробив для всіх розмірів екранів: — назва гри; - хлопець з дівчиною; - кнопки меню;

Ці об'єкти будуть супер якісними. А все інше: небо, будинок, земля, хмари будуть розмиті. Тому що я змінюватимуть їх розмір під кожен екран звичайним розтягуванням. А при розтягуванні, якість картинки втрачається:

екрану

Всі об'єкти сцени виставляють програмно, бажано від центру екрану. Або береться співвідношення сторін. Наприклад, як я виставляв кнопки меню на попередньому малюнку? Кнопку Play я поставив центром. Кнопку переходу на сайт (та що ліворуч) - це ліва половина екрана розділена на 2. Права кнопка (стерти прогрес) аналогічно лівій.

Спочатку дико незручно, але згодом звикаєш. Наразі розробляю другу частину гри Building cubes2, але вже на юніті. Flash у дошку задовбав мене своїми гальмами.

Дякую всім, хто дочитав до кінця. Намагався коротко описувати, не розтягувати нудними літерами. До нового скеля.