1

在我的游戏中,我使用 cclabelttf 来显示玩家的得分。它在 7 月底运行良好,我的代码中没有任何更改,但是有一个: - 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 模拟器上可见,但从这里开始,我认为它一定是对齐/包装问题。

4

2 回答 2

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)演员表。

于 2014-01-14T10:23:11.237 回答
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);
于 2013-11-04T03:41:45.700 回答