Два файла с одинаковым именем от cocosbuilder

Я хотел бы использовать cocosbuilder и cocos2d-x для разработки своей игры для старых и новых iPhone. Я хотел бы создать один файл для двух разрешений. Я создал один файл ccb, ​​а затем опубликовал его в сетчатке и обычном разрешении. Все отлично работает, но теперь у меня есть два файла png с одинаковым именем:

Опубликовано-iOS/resources-iphone/star.png

Опубликовано-iOS/resources-iphonehd/star.png

Есть проблема. Я использую Xcode, и ему не нравятся 2 файла с одинаковым именем в проекте. Я могу добавлять эти файлы в проекты отдельными группами, но в итоговом пакете приложения может быть только один файл star.png. Он выбирается случайным образом. Когда я запускаю свое приложение на iphone 4s, у меня появляется изображение со старого дисплея iphone. Как использовать cocosbuilder для нескольких разрешений?


person Tomasz    schedule 14.03.2013    source источник


Ответы (2)


Вы должны импортировать каталоги resources-iphone и resources-iphonehd в свой проект XCode как ссылки на папки, а не группы. Вы можете сделать это, перетащив папки в свой проект XCode. Когда вы это сделаете, вы увидите, что каталоги появляются в вашем комплекте приложений. Вы можете проверить это, выбрав цель вашего приложения и перейдя в раздел «Фазы сборки» -> «Копировать ресурсы пакета».

После этого в файле ApplicationDelegate.cpp вы должны добавить эти папки в список путей поиска CCFileUtils.

std::vector<std::string> resDirOrders;

if (resolution is iphone) 
{
    resDirOrders.push_back("resources-iphone");
} 
else if (resolution is iphone retina) 
{
    resDirOrders.push_back("resources-iphonehd");
    resDirOrders.push_back("resources-iphone");
}

CCFileUtils::sharedFileUtils()->setSearchResolutionsOrder(resDirOrders);

Разработчики cocos2d-x рекомендуют этот способ обработки нескольких разрешений (ознакомьтесь с эту статью). Вы можете использовать размер окна из CCDirector для определения текущего разрешения. В случае с iphonehd я включаю папки без сетчатки, а также запасной вариант.

person nickveri    schedule 15.03.2013

Пакеты приложений Xcode и iOS организованы не в папки, а в плоские пакеты. Вам нужно будет переименовать ваши файлы, чтобы он работал. Я предлагаю что-то вроде этого:

// iOS Standard
Published-iOS/resources-iphonehd/[email protected]

или это

// cocos-2d Standard
Published-iOS/resources-iphonehd/star-hd.png
person Ryan Poolos    schedule 14.03.2013