Всякий раз, когда я использую
sprite = [CCSprite spriteWithFile:@"image.png"];
Cocos2d всегда был достаточно умен, чтобы искать «image.png» на устройствах без сетчатки и «[email protected]» для устройств с сетчаткой.
Но всякий раз, когда я пытаюсь динамически построить строку имени файла спрайта, т.е.
int random = arc4random() % 2;
switch (random) {
case 0:
color = @"blue";
break;
case 1:
color = @"green";
break;
default:
break;
}
filename = [[NSString alloc] initWithString:color];
filename = [filename stringByAppendingString:@"Square.png"];
// Sprite should now be either "greenSquare.png" or "blueSquare.png"
sprite = [CCSprite spriteWithFile:filename];
Внезапно мои файлы @2x полностью игнорируются - и cocos2d ищет только файлы, которые === "greenSquare.png", т.е. "[email protected]", никогда не подхватываются, и если "greenSquare.png " не существует (в то время я тестировал только дисплеи Retina), все приложение вылетает.
Любая идея, почему это происходит и что я могу сделать, чтобы решить эту проблему?
(В идеале без необходимости вручную проверять состояние сетчатки устройства, а затем вручную добавлять @2x - поскольку я знаю, что это возможное решение, оно просто не похоже на правильное).
Спасибо!