需要使用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/