Как мне остановить Cocos2D от ресурсов стандартной четкости (образы SD)? - PullRequest
0 голосов
/ 23 января 2012

Я разрабатываю игру для iPhone с Cocos2d-iphone.

Я хочу, чтобы моя игра была доступна только для iPhone 4 и iPad. Retina включена для iPhone 4. Я не хочу, чтобы игра работала на старых устройствах.

Cocos2d всегда будет спрашивать меня о файлах -hd и non-hd. Если я не предоставляю файлы SD, я получаю ошибки. Я не хочу этого: есть ли способ отключить Cocos2d от попыток получения SD-файлов и получить только файлы с суффиксом -hd по умолчанию?

Да, и когда игра будет запущена на iPad, графика также будет -hd. Суть в том, что я хочу, чтобы в моем проекте были только файлы -hd.

Каковы надлежащие шаги для редактирования исходного кода Cocos2d для такого?

Ответы [ 4 ]

3 голосов
/ 02 мая 2012

Если вы используете версию cocos2d> = 2.0, вы можете изменить значение глобальной переменной, найденной в CCFileUtils.h:

static NSString *__suffixiPad =@"-hd";

(значение по умолчанию - @"-ipad".)

Если вы используете cocos2d версии <2.0, вы можете найти <a href="https://github.com/sdesimone/iOSSnippets/blob/master/cocos2D/CCFileUtils+SDSDeviceSuffix.m" rel="nofollow"> здесь категорию, которую я написал, чтобы иметь возможность прозрачно использовать изображения -hd, созданные для iPhone 4 на iPad 1/2.

На самом деле, он делает больше, но если вы добавите его в свой проект, то изображения «-hd» будут «автоматически» использоваться на iPad 1/2 вместо их версий SD (которые вы могли бытакже не включается в ваш проект).

Дайте мне знать, если у вас есть какие-либо проблемы с интеграцией этого кода.

1 голос
/ 02 мая 2012

Если бы я был на вашем месте ... Я бы сыграл с подвохом ... Не голосуйте, если вам не нравится ... Но это просто вещь в моей голове.

Используйте -hd изображения в коде напрямую. IPhone 4 легко с этим справится. Старые iPhone покажут его намного больше, и это не имеет значения, поскольку вы их не поддерживаете ... Поэтому вместо использования Background.png,напрямую используйте Background-hd.png, так как он будет отлично работать на iPhone 4 .. Вместо того, чтобы тратить время на все эти SD-вещи ... Я буду напрямую использовать мои -hd образы для своей работы ...

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

0 голосов
/ 28 апреля 2012

Первая идея, которую я могу придумать, это использовать @ 2x суффикс для изображений (стиль UIKit), и вам не нужно будет включать отображение сетчатки в приложении. Проблема в том, что на ipad вам придется написать свой собственный метод для удалить суффикс @ 2x

2-я идея заключалась в том, чтобы сделать изображение SD ... но только 1x1 пикселей ... это практически не занимает места (119 байт с белым пикселем). Должен работать на Ipad как есть

3-я идея: не включайте (или не включайте .. не имеет никакого значения) отображение сетчатки, но используйте изображения HD в качестве изображений SD. Я проверил это на cocos2d v1.0.1, и, похоже, он работает. ..это должно работать на Ipad

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

это просто идеи с головы до головы .. они могут ошибаться .. но это всего лишь идеи

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

Этот учебник может помочь .

Если вы предоставляете только ресурсы -hd, вы должны получать сообщения только об отсутствующих ресурсах SD при работе на iPad. IPad не имеет дисплея Retina, но он, безусловно, имеет высокое разрешение, чтобы с ним можно было обращаться как с одним.

Поскольку cocos2d передает все запросы имен файлов через функцию fullPathFromRelativePath в CCFileUtils , возможно, будет достаточно изменить эту функцию, чтобы она воспринимала iPad как устройство HD и заставляла его загружать ресурсы -hd на iPad.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...