Cocos2d-x CCLabelTTF невидимый

В моей игре я использую cclabelttf для отображения очков, набранных игроком. В конце июля он работал нормально, я ничего не менял в своем коде, но было: - Обновление IOS (с 6.1 до 7.0) - Обновление OSX - cocos2d-x
- Обновление Xcode

Я не использую шрифты Helvetica.

У меня есть плавающий текст, чтобы показать счет, если я убиваю террориста, всплывает строка «+10», а затем исчезает, если я пишу «+10», то она видна, иначе нет.

Я попытался изменить выравнивание текста в ccimage.mm с UITextAlignmentLeft на то же самое с NS,

раскомментируйте эти строки:

if( [font isKindOfClass:[UIFont class] ] )
{
    [str drawInRect:CGRectMake(0, startH, dim.width, dim.height) withFont:font lineBreakMode:(UILineBreakMode)UILineBreakModeWordWrap alignment:align];
}

Я прочитал эти модификации на форуме cococs2d-x, там была ошибка, и это было решением. Не повезло мне.

Странно то, что на моей игровой сцене одна из меток видна, но только на симуляторе iPhone, но, начиная с этого, я думаю, что это должна быть проблема с выравниванием/обтеканием.


person Ferenc Dajka    schedule 29.10.2013    source источник
comment
возможно, это связано: stackoverflow.com/questions/19438939/   -  person LearnCocos2D    schedule 29.10.2013
comment
спасибо, но я так не думаю, я пробовал эту штуку   -  person Ferenc Dajka    schedule 31.10.2013


Ответы (2)


Столкнулся с той же проблемой, нашел решение, которое работает для меня, попробуйте это. Измените _initWithString в CCImage.mm, в строке:

CGContextRef context = CGBitmapContextCreate(data, dim.width, dim.height, 8, dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);

изменить его на:

CGContextRef context = CGBitmapContextCreate(data, (int)dim.width, (int)dim.height, 8, (int)dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);

Всего три (int) слепка.

person pipipi    schedule 14.01.2014

может быть, вы можете попробовать это так:

CCLabelTTF*  YouClassName::stringNewLine(string orgStr,CCSize sizeTable,const char* fontName,float fontSize){
CCLabelTTF *m_label_content = CCLabelTTF::create( "hello", fontName, fontSize ,sizeTable, kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);

m_label_content->setString(orgStr.c_str());
return m_label_content;
}

и использовать его так

CCLabelTTF * ttf = stringNewLine("test",CCSizeMake(200,200), "Arial", 28);
person 3k_kiven    schedule 04.11.2013