需要使用TTF渲染文本在C++中打印出全局变量。因此它将显示如下:

“总杀人数:”这里可变

得到了它的工作原理,但将文本推到左侧

SDL_Surface* textSurface = TTF_RenderText_Shaded(font, "Humans killed: " + totalKilled,    foregroundColor, backgroundColor);

最佳答案

"Humans killed: " + totalKilled

这是指针算法。它不会totalKilled转换为std::string,将其连接到"Humans killed: ",然后将结果转换为以空值结尾的字符串。

尝试以下方法:
#include <sstream>
#include <string>

template< typename T >
std::string ToString( const T& var )
{
    std::ostringstream oss;
    oss << var;
    return var.str();
}

...

SDL_Surface* textSurface = TTF_RenderText_Shaded
    (
    font,
    ( std::string( "Humans killed: " ) + ToString( totalKilled ) ).c_str(),
    foregroundColor,
    backgroundColor
    );

如果您愿意使用Boost,可以使用 lexical_cast<> 而不是ToString()

关于c++ - 在渲染SDL_TTF文本C++时显示变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22763881/

10-11 03:57