SDL_ttf и числа (int) - PullRequest
       7

SDL_ttf и числа (int)

0 голосов
/ 18 июня 2010
int score = 0;
char* fixedscore=(char*)score;
.
.
.
imgTxt = TTF_RenderText_Solid( font, fixedscore, fColor );

^^ Это не работает - похоже, что фиксированная оценка пуста или не существует.

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

^^ Работает нормально, но...

Полагаю, преобразование int в char * на самом деле не работает.Так как вы печатаете результаты в SDL?Ох, и еще одна вещь: почему текст такой уродливый?

Ответы [ 2 ]

1 голос
/ 18 июня 2010

Кастинг не то, что вы хотите. Этот код:

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 );
0 голосов
/ 22 января 2014

Я столкнулся с подобной проблемой, у меня было

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
...