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中打印分数? 哦,还有一件事:文本为何如此丑陋?
答案 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