Objective-C에서 Cocos2d를 사용하기 때문에 형식에 NSMutableString을 사용하여 문자열에 변수 (점수)를 넣을 수 있습니다. 그 문자열을 가져 와서 CCLabel을 사용하여 화면에 배치했습니다.Cocos2d-X에서 문자열의 일부로 정수를 사용하여 CCLabelTTF를 설정하려고합니다. C++
Cocos2D-x를 사용하여이 결과를 얻는 방법을 찾는 데 어려움이 있습니다. 간단한 예가 좋습니다. 감사!
Objective-C에서 Cocos2d를 사용하기 때문에 형식에 NSMutableString을 사용하여 문자열에 변수 (점수)를 넣을 수 있습니다. 그 문자열을 가져 와서 CCLabel을 사용하여 화면에 배치했습니다.Cocos2d-X에서 문자열의 일부로 정수를 사용하여 CCLabelTTF를 설정하려고합니다. C++
Cocos2D-x를 사용하여이 결과를 얻는 방법을 찾는 데 어려움이 있습니다. 간단한 예가 좋습니다. 감사!
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);
주어진 시간 (from here)의 문자열을 설정하는 간단한 솔루션입니다. 먼저 코드의 어딘가에 매크로를 정의하십시오.
#define ccsf(...) CCString::createWithFormat(__VA_ARGS__)->getCString()
그런 다음 당신은 문자열이 같은 언제든지 변경할 수 있습니다
m_pScoreLabel->setString(ccsf("%d pts", mCurrentScore));
대답과 소스 코드가 중대하다,하지만 아마도 난에 지적 것 중 하나 표준 : : 문자열과의 합치 능력으로 이동 , 또는 char *와 sprintf - 둘 다 믹스 이상한 (적어도 저에게)입니다. –
사실, 나는 나의 대답을 편집했다. sprintf는 std :: string을 허용합니까? 나는 기억이 안 나. 사촌 나는 개인적으로 sprintf보다 모든 숫자와 숫자를 연결하기 위해 문자열을 사용하는 것보다 조금 복잡합니다. –
'c_str()'메서드를 사용하여'std :: string'을 변환 할 수 있습니다. – alxcyl