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, но, исходя из этого, я думаю, что это должна быть проблема выравнивания / переноса.
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)
слепки.
Может быть, вы можете попробовать это так:
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);