Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trying to set up a CCLabelTTF with an integer as part of it's string in Cocos2d-X C++

So in Objective-C with Cocos2d, I'd use a NSMutableString with format to put a variable (score) into a string. I'd take that string and use a CCLabel to place it on the screen.

Using Cocos2D-x, I'm having trouble finding a way to get this result. A simple example would be great. Thanks!

like image 318
David Small Avatar asked Sep 20 '12 04:09

David Small


2 Answers

int score = 35;
float time = 0.03;
char* name = "Michael";
char text[256];
sprintf(text,"name is %s, time is %.2f, score is %d", name, time, score);
CCLabelTTF* label = CCLabelTTF::labelWithString(text,"Arial",20);
this->addChild(label);
like image 175
m.ding Avatar answered Oct 23 '22 10:10

m.ding


A simpler solution to set the string at any given time (from here). First define a macro somewhere in your code.

#define ccsf(...) CCString::createWithFormat(__VA_ARGS__)->getCString()

Then you can change the string any time like this:

m_pScoreLabel->setString(ccsf("%d pts", mCurrentScore));
like image 29
Coyote Avatar answered Oct 23 '22 12:10

Coyote