Некорректное отображение на iPad3 во время программирования iOS

Я разрабатываю приложение для iOS с использованием Cocos2D и столкнулся со следующей очень странной проблемой.

В начале есть только полная версия, и на iPad2 и на 3 все работает хорошо. Сейчас планирую сделать облегченную версию, поэтому зарегистрировал новый сертификат на сайте Apple. Используя lite сертификат, облегченная сборка, созданная в Xcode, может хорошо работать на iPad2, но дисплей на iPad3 становится вдвое меньше экрана. Кажется, проблема из-за нового сертификата, не могли бы вы помочь мне ответить на вопрос? Заранее спасибо.


person Dali    schedule 31.08.2012    source источник
comment
точно не твой сертификат   -  person Fab1n    schedule 31.08.2012


Ответы (2)


Это не ваш сертификат. Вам нужно разрешить масштабирование на iPad3, так как он имеет дисплей Retina.

Вам также необходимо предоставить новые текстуры/изображения соответствующего размера, чтобы воспользоваться преимуществами дисплея сетчатки. Вы можете использовать существующую иллюстрацию без сетчатки, и она, вероятно, будет выглядеть нормально. Но это не будет выглядеть идеально.

Я не использовал cocos2d. Вы также используете GlKit, так как GLkView ожидает, что вы разрешите масштабирование на экране.

Например, если вы просто хотите увеличить масштаб того, что вы уже создали, вы можете посмотреть, где устанавливается окно просмотра:

int scale = 1; // default is 1 - non-retina. It's adjusted below according to the scale on the device

    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
        && [[UIScreen mainScreen] scale] == 2.0) {
        scale = [[UIScreen mainScreen] scale];
    }

    // Set the viewport
    glViewport(0, 0, backingWidth*scale, backingHeight*scale);

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

Кроме того, в какое представление вы визуализируете, это EAGLView: UIView, использующий CAEAGLLayer для визуализации вашего OPENGL, или это GLKView. Если вы измените его с последнего, это также избавит от проблемы так же, как вставленный код избавится от нее. Ни один из них не является лучшим способом приблизиться к нему. Но это простой ответ на вашу проблему, возможно, кто-то еще захочет написать более подробный ответ.

person AppHandwerker    schedule 31.08.2012

Есть две вещи, которые вы можете учитывать при устранении проблемы:

  1. Убедитесь, что у вас есть копии ваших работ в 2-кратном разрешении с суффиксом «-hd», например. «ниндзя.png» и «ниндзя-hd.png». Это способ кокоса сделать @2x iOS.
  2. Проверьте, включена ли сетчатка в вашем коде, когда это необходимо:

    [[CCDirector sharedDirector] enableRetinaDisplay: YES];

Надеюсь, это поможет! И, как упоминалось ранее, это определенно не проблема с сертификатом! (к счастью для вас ;))

person Fszczemton    schedule 31.08.2012