Cocos2d-x CClabelTTF看不见

时间:2013-10-29 10:48:17

标签: ios cocos2d-x invisible 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论坛上看过这些修改,有一个错误,这些都是解决方案。对我来说没有运气。

奇怪的部分是在我的gameScene上,其中一个标签是可见的,但只在iPhone模拟器上,但从这开始,我认为它必须是对齐/包装问题。

2 个答案:

答案 0 :(得分:4)

遇到同样的问题,发现解决方案适合我,试试这个。 修改_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)演员。

答案 1 :(得分:0)

也许你可以这样试试:

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);