Использование Zwoptex с CCSpriteBatchNode от Cocos2d на Retina Display - PullRequest
3 голосов
/ 24 августа 2011

Я использовал версию Zwoptex Flash для генерации:

  • Файл текстуры .png с суффиксом -hd (изображения двойного размера)
  • Файл текстуры .png без суффикса -hd(изображения нормального размера)
  • .plist файл с суффиксом -hd.
  • .plist файл с суффиксом -hd.

Я проверил файлы икажется, все в порядке.

В своей игре сначала я добавил файл .plist в кеш:

[[CCSpriteFrameCache sharedSpriteFrameCache]addSpriteFramesWithFile:@"ParticleAnimations.plist"];

А затем я создал свой CCSpriteBatchNode:

spriteBatch = [CCSpriteBatchNode batchNodeWithFile:@"ParticleAnimations.png"];
[self addChild:spriteBatch z:0];

И, наконец, создайте мой CCSprite с именем файла изображения, найденного в моих текстурах:

CCSprite *particle = [CCSprite spriteWithSpriteFrameName:@"Particle1.png"];
[spriteBatch addChild:particle z:0];

Теперь я запускаю его на симуляторе (iPhone), и он работает очень хорошо.Затем я изменяю опцию «Оборудование» и устанавливаю «iPhone (retina)», что преобразует симулятор на экране 960x640.Но тогда мой гейн падает.В журнале есть следующие записи:

cocos2d: CCSpriteFrameCache: Попытка использовать файл 'ParticleAnimations.png' в качестве текстуры

cocos2d:CCSpriteFrameCache: кадр 'Particle1.png' не найден

Что я не совсем понимаю.Прежде всего, почему он использует ParticleAnimations.png вместо ParticleAnimations-hd.png , поскольку он находится в режиме Retina Display?И, конечно же, почему он ищет Particle1.png вместо Particle1-hd.png ?

1 Ответ

11 голосов
/ 24 августа 2011

Для начала подумайте, чтобы раскомментировать эти строки в свой appdelegate:

// Enables High Res mode (Retina Display) on iPhone 4 and maintains low res on all other devices
    if( ! [director enableRetinaDisplay:YES] )
        CCLOG(@"Retina Display Not supported");

Это позволит Cocos2d использовать файлы -hd.

Тогда ваши имена спрайтов должны быть точното же самое в ваших спрайт-листах.Просто файлы plist и texture должны иметь суффикс "-hd".Например, если у вас есть спрайты с именами toto.png, titi.png, tata.png в ваших спрайт-листах с именем mysp, они должны выглядеть так:

// Normal
- mysp.png
- mysp.plist
  |- toto.png
  |- titi.png
  |- tata.png

// Retina
- mysp-hd.png
- mysp-hd.plist
  |- toto.png
  |- titi.png
  |- tata.png

Для получения дополнительной информации вы должны обратиться к официальной документации: RetinaDisplay в cocos2d

Надеюсь, это поможет вам!

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