Cocos2d-x CCLabelTTF не работает на iPad

Я создал объект CCLabelTTF в одном из своих пользовательских слоев.

myLabel = CCLabelTTF::create( "Something", CCSizeMake( 300, 96 ), kCCTextAlignmentCenter, "Arial Rounded MT Bold", 48.0f );

Прекрасно работает в симуляторе и на устройстве iPhone. Но на iPad это не работает. Я добавил шрифт в папку ресурсов и в файл Info.plist, но он все равно не работает.

Поэтому я попытался запустить слой HelloWorld (тот же проект). Он имеет CCLabelTTF с шрифтом Thonburi. На айпаде работало нормально. Но когда я использовал Thonburi в своем собственном слое, это не сработало! Почему он не может показать текст со шрифтом Thonburi в моем собственном слое, когда он может в слое HelloWorld?

Разница между двумя объектами CCLabelTTF заключается в следующем:

  1. Версия HelloWorld является локальной переменной, а в моем слое это переменная-член.
  2. Версия HelloWorld использовала CCLabelTTF::create( text, font, size ), а в моем слое я использовал CCLabelTTF::create( text, dimension, alignment, font, size )

person alxcyl    schedule 28.09.2012    source источник
comment
Лэнс, я только что опубликовал сообщение «Вопрос + ответ» по этому вопросу. У меня была такая же проблема, и я был очень расстроен. Потому что, хотя у многих пользователей была эта проблема, часто это было по разным причинам. Мой ответ представляет собой комбинацию всех решений. Следуйте моему ответу, и он должен решить вашу проблему. Если нет, напишите комментарий, и я найду решение и обновлю свой ответ. В любом случае, вот сообщение (stackoverflow.com/questions/14508675/)   -  person RLH    schedule 25.01.2013


Ответы (1)


в версии 2.0 они меняют API функции создания на create(const char *string, const char *fontName, float fontSize, const CCSize& Dimensions, CCTextAlignment hAlignment)

person m.ding    schedule 29.09.2012
comment
Этикетка не отображается. 1. Да, есть. На айфоне работает нормально. 2. Ложь. Я установил его в три раза больше размера шрифта. Когда я пытаюсь получить размер метки, я получаю ноль. - person alxcyl; 01.10.2012
comment
@LanceGray Я копирую твой код в свой проект и думаю, что знаю почему. в 2.0 они меняют API на create(const char *string, const char *fontName, float fontSize, const CCSize& dimensions, CCTextAlignment hAlignment) - person m.ding; 02.10.2012
comment
Я пробовал, но его нет в API. Единственный похожий - CCLabelTTF::create(const char *string, const cocos2d::CCSize &dimensions, CCTextAlignment hAlignment, const char *fontName, float fontSize), и я его использую. - person alxcyl; 02.10.2012
comment
@LanceGray Это дико, как насчет положения ярлыка? это вне экрана? - person m.ding; 02.10.2012
comment
Это все еще там. Я не знаю, в чем причина, но CCLabelTTF не работает. Я заменил CCLabelTTF на CCLabelBMFont и думаю, что результаты превзошли ожидания. Спасибо большое за вашу помощь. - person alxcyl; 02.10.2012
comment
@LanceGray это действительно странно, пока он отлично работает на iphone, ожидается, что он будет работать и на ipad. извините, мало чем могу помочь. - person m.ding; 02.10.2012