Ipad iOS 7.0中的CCLabelTTF不可见问题
我在游戏中使用cocos2d-x2.0.4。 CCLabelTTF在iOS 6中的设备和模拟器上都运行良好。但当我在iOS 7.0中测试它时,它不起作用。 这是我的密码Ipad iOS 7.0中的CCLabelTTF不可见问题,ipad,ios7,cocos2d-x,cclabelttf,Ipad,Ios7,Cocos2d X,Cclabelttf,我在游戏中使用cocos2d-x2.0.4。 CCLabelTTF在iOS 6中的设备和模拟器上都运行良好。但当我在iOS 7.0中测试它时,它不起作用。 这是我的密码 int nScore = 10; char str[50]; sprintf(str, "SCORE : %d", nScore); CCLabelTTF *lbl = CCLabelTTF::create(str, "Marker Felt", 50); lbl->setPosit
int nScore = 10;
char str[50];
sprintf(str, "SCORE : %d", nScore);
CCLabelTTF *lbl = CCLabelTTF::create(str, "Marker Felt", 50);
lbl->setPosition(ccp(size.width*0.5, size.height*0.88));
lbl->setColor(ccRED);
this->addChild(lbl);
分数现在不显示。但它在iOS 6中显示。
还有一个奇怪的问题。
如果我像这样修改上面的代码,它就会工作
CCLabelTTF *lbl = CCLabelTTF::create("SCORE", "Marker Felt", 50);
lbl->setPosition(ccp(size.width*0.5, size.height*0.88));
lbl->setColor(ccRED);
this->addChild(lbl);
但如果我再次像下面那样更改此代码,它将不起作用。(不可见)
也许这是个区分大小写的问题
最后,即使文本是大写,下面的代码也不起作用。我只加了10号
CCLabelTTF *lbl = CCLabelTTF::create("SCORE : 10", "Marker Felt", 50);
lbl->setPosition(ccp(size.width*0.5, size.height*0.88));
lbl->setColor(ccRED);
this->addChild(lbl);
任何帮助都将不胜感激。
提前谢谢 我在使用cocos2d-x2.1.3时遇到了同样的问题。我发现了一个链接,指出这个问题是一个影响iOS 7标签的bug。为了解决此问题,您需要更新引擎,或手动合并拉取请求。升级cocos2d-x版本,它在3.0中已修复,如果您使用的是cocos2dx旧版本,请更改为CCimage.mm此状态
CGContextRef context = CGBitmapContextCreate(data,dim.width,dim.height, 8,dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGContextRef context = CGBitmapContextCreate(data, (size_t)dim.width, (size_t)dim.height, 8, (size_t)dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
可能的原因:在堆栈上创建了
str
变量,一旦方法返回,该变量将成为悬空指针。除非CCLabelTTF复制字符串。我曾尝试更新cocos2d-x引擎,但当我这样做时,出现了一些错误。您能告诉我如何手动更新引擎或合并请求吗?
CGContextRef context = CGBitmapContextCreate(data,dim.width,dim.height, 8,dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGContextRef context = CGBitmapContextCreate(data, (size_t)dim.width, (size_t)dim.height, 8, (size_t)dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);