Какие размеры изображений мне нужны для фона и спрайтов в короне для поддержки Android / Iphone - PullRequest
0 голосов
/ 28 декабря 2011

Мне нравится, что корона компилируется в несколько сред, но я хочу знать, какие спрайты и изображения мне нужны.Я имею в виду, что у меня нет времени на создание отдельных изображений для каждого возможного размера устройства.Я знаю, что Corona поддерживает автоматическое масштабирование изображений.Так, например, если у меня есть спрайт 64x64, это все, что мне нужно?или мне нужны новые размеры изображения для каждого сценария?Я ищу 80% покрытие, не идеальное для каждого устройства.

Ответы [ 4 ]

2 голосов
/ 07 марта 2013

Я делаю это по-другому. Я думаю, что это может помочь вам. На мой взгляд, просто создайте значения множителей для ширины и высоты (в зависимости от того, в каком симуляторе вы кодируете), и умножьте каждый параметр ширины или высоты следующим образом (как показано ниже):

--------------------------------------------------------------------------
   -- choosing xMultiplier and yMultiplier values --
--------------------------------------------------------------------------
   local xMultiplier = display.contentWidth/320  
   local yMultiplier = display.contentHeight/480
   --[[ I used 320 here because i'm using iPhone Simulator 
        (320 is the width of the simulator you are coding in)
        I used 480 here because i'm using iPhone Simulator 
        (480 is the height of the simulator you are coding in)--]]

--------------------------------------------------------------------------
   -- creating background and positioning it --
--------------------------------------------------------------------------
   local bg = display.newImageRect("bg.png",320*xMultiplier,480*yMultiplier)
   bg.x = 160*xMultiplier ; bg.y = 240*yMultiplier

--------------------------------------------------------------------------
   -- creating object and positioning it --
--------------------------------------------------------------------------
   local rect = display.newImageRect(0,0,50*xMultiplier,50*yMultiplier)
   rect.x = 160*xMultiplier ; rect.y = 100*yMultiplier

--------------------------------------------------------------------------

Примечание: Если вы используете файл config.lua в своем проекте, это может не сработать.

Плюсы: Для этого нужно только одно изображение.

Минусы: Может повлиять на четкость изображений в устройствах с высоким разрешением. Поэтому выберите изображение с подходящим разрешением.

продолжай кодировать ...:)

1 голос
/ 20 марта 2013

Предлагаю посмотреть:

Big Corona Meetup - часть 1 - Corona SDK на YouTube.

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

0 голосов
/ 20 марта 2012

У вас действительно есть два варианта, в зависимости от вашей игры и имеющегося у вас контента.

Вы можете использовать волшебную формулу для масштабирования почтового ящика, которая представлена ​​здесь: http://blog.anscamobile.com/2010/11/content-scaling-made-easy/

или, если вам нужно, вы можете комбинировать вышеперечисленное с загрузкой изображений с различным разрешением, что описано здесь: http://blog.anscamobile.com/2010/11/content-scaling-made-easy/

Это означает, что вы получите более 90% устройств и, в зависимости от ваших потребностей, четкую графику на разных устройствах.

0 голосов
/ 16 января 2012

Создание нескольких изображений с разными размерами.
Это выбор, с которым я иду сейчас,
давайте предположим, что базовое изображение имеет размер 100x70, а разрешение базового экрана составляет 320x480.

baseImage.png       100x70  | 320x480  for IPhone and Android mdpi normal screen
baseImage@2.png     200x140 | 640x960  for IPhone 4
baseImage@ipad.png  213x149 | 768x1024 for IPads and Android mdpi xlarge screen
baseImage@hdpi.png  150x105 | 480x800  for Android hdpi normal screen

на основе здесь :

top 3 Android screen density and size
hdpi normal 66.3% 
mdpi normal 18.5%   
mdpi xlarge  4.9%   

Сначала измените весь код инициализации изображения на newImageRect().
Он загрузит соответствующий файл изображения с ближайшим разрешением и соотношением.
Если лучшего соответствия не найдено, будет загружено базовое изображение.

local img = display.newImageRect("baseImage.png",100,70) 
--100 is base width
-- 70 is base height

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

application =
{
    content =
    {
        width = 320,
        height = 480,
        scale = "letterBox",
        xAlign = "center",
        yAlign = "center",

        imageSuffix =
        {
            ["@2"] = 2,
            ["@ipad"] = 2.133, --1024/480
            ["@hdpi"] = 1.5,   --480/320
        },
    },
}

Сводка : Экран увеличится, чтобы показать все элементы на экране. Это автоматически загрузит наименьшее возможное изображение. Минусы на устройствах с соотношением 1,5 или выше, будет лишняя черная область с левой и правой стороны экрана.

Это все, на что я надеюсь.
У нас пока нет IPad 3 (со смешным разрешением 2048x1536) для тестирования, поэтому я не могу комментировать.

...