2012-09-20 7 views
6

Objective-CではCocos2dを使用していますので、文字列に変数(スコア)を入れるためにNSMutableStringを使用します。私はその文字列を取ってCCLabelを使って画面に配置します。Cocos2d-Xの文字列の一部としてCCLabelTTFを設定しようとしています。C++

Cocos2D-xを使用して、この結果を得る方法を見つけるのが難しいです。簡単な例が素晴らしいでしょう。ありがとう!

答えて

12
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); 
+0

解答とソースコードは素晴らしいですが、多分私はどちらかのstdで行く::文字列とその連結能力を指摘します、またはsprintfとchar * - 両方の混合は奇妙です(私にとっては少なくとも)。 –

+0

ええ、私は私の答えを編集しました。 sprintfはstd :: stringを受け入れますか?私は覚えていない。私は個人的にすべての数字と数字を一緒に接続するために文字列を使用するよりも、私にはちょっと複雑なsprintfが好きです。 –

+1

'c_str()'メソッドを使って 'std :: string'を変換することができます。 – alxcyl

5

任意の時刻(from here)で文字列を設定する簡単な方法です。まず、コードのどこかにマクロを定義します。

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

次に、あなたが文字列にこのような任意の時間を変更することができます

m_pScoreLabel->setString(ccsf("%d pts", mCurrentScore)); 
関連する問題