在我的游戏中,我使用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模拟器上,但从这开始,我认为它必须是对齐/包装问题。
答案 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);