2013-11-08 1 views
0

Я использую cocos2d-x 2.0.4 для своей игры. CCLabelTTF хорошо работает как на устройстве, так и на симуляторе в iOS 6. Но когда я тестирую его в iOS 7.0, он не работает. Вот мой код.CCLabelTTF невидимая проблема в iOS 7.0

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

Но если я изменить этот код, как показано ниже снова, он не работает. (Невидимый)

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

Любая помощь будет оценена. Спасибо заранее.

+0

Возможная причина: 'str' переменная создается на стек и становится обвисшим указателем после возвращения метода. Если CCLabelTTF не скопирует строку. – LearnCocos2D

ответ

0

Я столкнулся с этой проблемой при использовании cocos2d-x 2.1.3. Я нашел ссылку this, в которой говорится, что проблема связана с ошибками, которые влияют на метки в iOS 7. Чтобы исправить эту проблему, вам нужно либо обновить движок, либо слить this запрос на перенос вручную.

+0

Я пытался обновить движок cocos2d-x, но когда я это сделал, произошли некоторые ошибки. Не могли бы вы сообщить мне, как обновить движок или слить запрос на извлечение вручную? – user2968371

0

обновить версию cocos2dx это зафиксированный в 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);