2012-09-20 15 views
6

में इसकी स्ट्रिंग के हिस्से के रूप में एक पूर्णांक के साथ एक CCLabelTTF सेट करने का प्रयास कर रहा है तो उद्देश्य-सी में कोकोस 2 डी के साथ, मैं एक स्ट्रिंग में एक चर (स्कोर) डालने के लिए प्रारूप के साथ एक एनएसएमयूटेबलस्ट्रिंग का उपयोग करता हूं। मैं उस स्ट्रिंग को ले जाऊंगा और स्क्रीन पर रखने के लिए एक सीसीएलएबल का उपयोग करूंगा।कोकोस 2 डी-एक्स सी ++

कोकोस 2 डी-एक्स का उपयोग करके, मुझे यह परिणाम प्राप्त करने का कोई तरीका ढूंढने में परेशानी हो रही है। एक साधारण उदाहरण बहुत अच्छा होगा। धन्यवाद!

उत्तर

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 - मिश्रण दोनों अजीब तरह से (कम से कम मेरे लिए) है। –

+0

हाँ सच है, मैंने अपना जवाब संपादित किया। लेकिन क्या sprintf std :: स्ट्रिंग स्वीकार करता है? मुझे याद नहीं है coz मैं व्यक्तिगत रूप से सभी संख्याओं और अंकों को एक साथ जोड़ने के लिए स्ट्रिंग का उपयोग करने से स्प्रिंटफ पसंद करता हूं, बस थोड़ा सा जटिल। –

+1

आप 'std :: string' को कन्वर्ट करने के लिए' c_str() 'विधि का उपयोग कर सकते हैं। – alxcyl

5

एक अधिक आसान समाधान किसी भी समय (from here) में स्ट्रिंग सेट करने के लिए। सबसे पहले अपने कोड में मैक्रो को परिभाषित करें।

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

तो फिर तुम स्ट्रिंग इस तरह किसी भी समय बदल सकते हैं:

m_pScoreLabel->setString(ccsf("%d pts", mCurrentScore)); 
संबंधित मुद्दे