• Разработка игры на Android\iOS (Unity3D 4.3, Cocos2D) - размеры экрана, DPI, масштабирование спрайтов?

    risik
    @risik
    Программист
    Density и разрешение экрана свзяно друг с другом не совсем прямо пропорционально.

    В Android есть такое правило:
    LDPI:MDPI:HDPI:XHDPI:XXHDPI=3:4:6:8:12.

    например здесь: stackoverflow.com/questions/6166677/android-screen...
    или на developer.android.com

    То есть, делать персонажа 100 пикселей для xhdpi - очень плохая идея. Лучше, например, 96 пикселей. Так как 96 без остатка делится 6. А высоту не 80, на 78. Тогда размеры персонажа у Вас будут:
    LDPI: 48х39
    MDPI: 64х52
    HDPI: 96х78
    XHDPI: 128x104
    XHDPI: 192х156

    Отсюда можно легко вычислить в каком разрешении Вам надо рисовать персонажа, чтобы избежать не ркатного масштабирования. Находим наименьшее общее кратное между пропорциями. Это будет 24. И рисуем Ваш объект в разрешении 384х312. Из этого размера Вы легко получаете все рисунки всех необходимых размеров. Лучше сделать скрипт, который, например, при помощи ImageMagick масштабирует Ваш оригинальный рисунок и раскладывает по папкам.

    То есть, если Вы хотите поддерживать все 5 разрешений, то все Ваши оригинальные рисунки должны иметь размеры, делящиеся на 24 нацело.

    Однако, LDPI можно не рассматривать. Тогда пропорции получаются:
    MDPI:HDPI:XHDPI:XXHDPI=2:3:4:6.
    И в этом случае, очевидно, что все оригинальные рисунки должны иметь размеры, нацело делящиеся на 12. Кстати, даже если Вы оставите поддержку только HDPI и XHDPI Вам все равно нужен множитель 12, а значит Вы дешево получаете поддержку и MDPI и XXHDPI.

    Для iOS все чуточку проще. Смотрите комментарий @Lerg.
    Ответ написан
    Комментировать