SDL_ttf和Numbers(int)

时间:2010-06-18 04:39:47

标签: c++ sdl

int score = 0;
char* fixedscore=(char*)score;
.
.
.
imgTxt = TTF_RenderText_Solid( font, fixedscore, fColor );

^^这不起作用 - 看起来像fixedscore是空的或不存在。

int score = 0;
char* fixedscore=(char*)score;
.
.
.
imgTxt = TTF_RenderText_Solid( font, "Works fine", fColor );

^^工作正常,但是......

我想将int转换为char *并不真正起作用。那么你如何在SDL中打印分数? 哦,还有一件事:文本为何如此丑陋?

2 个答案:

答案 0 :(得分:1)

施法不是你想要的。这段代码:

int score = 0;
char* fixedscore=(char*)score;

相当于:

char* fixedscore = NULL;

我假设你试图让fixedscore保持分数中的数字的文本值。仅使用标准C ++的最简单方法是通过stringstream

std::stringstream strm;
strm << score;

...

imgTxt = TTF_RenderText_Solid( font, strm.str().c_str(), fColor );

答案 1 :(得分:-1)

我遇到了类似的问题, 我有

using namespace std;
int PlayerScore=0,AIscore=0;
stringstream Pscore,Ascore;
Pscore<<PlayerScore;
Ascore<<AIscore;

score1=TTF_RenderText_Solid( font, Pscore.str().c_str(), fontColor );
//Where score 1 is player1 surface on the screen
score2=TTF_RenderText_Solid( font, Ascore.str().c_str(), fontColor );
//Where score 2 is AI surface on the screen