2012-05-25 3 views
0

У меня есть приложение, которое отлично работает в симуляторе iPhone с помощью Xcode. Когда я пытаюсь запустить приложение на iPod touch, я получаю следующую ошибку;CCTexture2D. Невозможно создать ошибку текстуры на iPod touch не симулятор

2012-05-25 19: 40: 33.014 PracticeOne [602: 707] cocos2d: CCTexture2D. Невозможно создать текстуру. UIImage is nil 2012-05-25 19: 40: 33.016 PracticeOne [602: 707] cocos2d: Не удалось добавить изображение: Success1.png в CCTextureCache 2012-05-25 19: 40: 33.025 PracticeOne [602: 707] * отказ Assertion в - [Игра AddChild: г:], /IOSDevelopment/PracticeOne/PracticeOne/libs/cocos2d/CCNode.m:407

у меня есть Success1.png изображение, которое хранится в папке ресурсов.

Когда пользователь удаляет кнопку отправки, выполняется следующая логика;

// показать успех графику на экране

CCSprite *goodWord = [CCSprite spriteWithFile:@"Success1.png"]; 
    [goodWord setPosition:ccp(s.width/2, s.height/2) ]; 
    [self addChild:goodWord z:200]; 
    id action1 = [CCFadeIn actionWithDuration:1.5]; 
    id action2 = [CCFadeOut actionWithDuration:1.5]; 
    [goodWord runAction:action1]; 
    [goodWord runAction:action2]; 

Итак, я получить файл в формате PNG, расположите его и добавить его в сцену. Я запускаю действия для постепенного уменьшения изображения. Он появляется ненадолго и уходит, показывая пользователю, что они были успешными.

Когда я отлаживаю код, запущенный на устройстве, goodWord не содержит адрес после попытки получить Success1.png.

Кто-нибудь знает, почему это может быть успешным в симуляторе и выбросить эту ошибку на одном устройстве? У меня есть другие изображения из папки «Ресурсы», отображаемые на устройстве.

Любые советы или предложения были бы весьма полезны. Я буду продолжать искать решение и обновлять, если мне удастся.

Заранее спасибо.

+0

Похоже, эта проблема связана с этим конкретным изображением. Я смог заменить другое изображение, и он отлично работает на устройстве. Изображение Success1.png составляет 22kb с размерами 150 × 144. Я не уверен, почему iPOD это не нравится. –

+0

Подставить одноименное имя? Поскольку файловая система iOS чувствительна к регистру, поэтому попытка загрузки «Success1.png» на устройстве не удастся, если файл называется «success1.png». Симулятор использует файловую систему Mac, которая обычно нечувствительна к регистру, поэтому она будет работать на Simulator. – LearnCocos2D

+0

Большое спасибо. Проблема чувствительности к делу была проблемой. Я очень ценю подсказку. –

ответ

0

Устройство чувствительно к регистру для тонких имен. Убедитесь, что имя файла в Xcode-навигаторе по порядку идентично имени в папке ресурсов.Кроме того, может быть хорошей идеей «глубоко очистить» ваш проект, чтобы выявить другие несоответствия. Вариант-> Сборка.

+0

Спасибо. Это была проблема. Спасибо, что нашли время, чтобы предоставить ценный совет. –

0

Я не уверен, что это ошибка или причуда поведения между OS X и iOS, но у меня была очень похожая (если не одна и та же проблема) однажды, когда мне приходилось использовать изображения из другого проекта для другое устройство в качестве основы активов для проекта iOS.

В моем конкретном случае исходные изображения были gif-файлами, и я преобразовал их в png. Я открыл все файлы в Photoshop и затем сохранил их как новый png. Иногда я забыл изменить формат файла и просто заменил расширение .gif на .png. Я не верю, что фотошоп предупредил меня, поэтому я эмоционально спасал gifs с расширениями png!

Странно, что вы можете загружать эти типы gif с помощью png-расширений в X-код и запускать их в своем приложении на симуляторе! Однако они не будут работать на вашем устройстве iOS, когда вы загрузите приложение и протестируете его там.

Фиксация выполняется так же просто, как правильное повторное сохранение изображений, что позволяет выбрать правильный формат.

Я не уверен, откуда взялись ваши изображения или какой тип редактора вы использовали, но мне интересно, достаточно ли OS X достаточно для определения того, какой тип файла хранится в нем, независимо от его расширения. Однако iOS, похоже, не обладает этим встроенным интеллектом.

+0

Спасибо за отзыв. Вопрос, который вы описываете, интересен. Я использовал Success1.png в коде, в то время как файл был на самом деле назван success1.png. Симулятор не волновался, но iPod сделал. –

+0

Я бы предположил, что, хотя ваша проблема была по другой причине, корень все тот же - система загрузки и обработки изображений на OS X намного более способна, чем та, которая находится в iOS. – RLH

Смежные вопросы