所以我只想指出我对引擎外的代码很新,所以这对我来说有点新鲜。
我正在使用SDL作为游戏的基础,并想知道在屏幕上以分数/时间的形式绘制文本的简单方法。
到目前为止,在搜索时我还没有发现任何我真正了解或如何使用的东西。在使用标签SDL进行搜索时,我发现最常见的是SDL_ttf,我试图调查但没有成功。
所以再一次,我正在寻找一种以分数/时间的形式显示文本,字符串和浮点数/ int的简单方法。
答案 0 :(得分:1)
仅SDL库SDL不支持将文本写入屏幕。您的搜索引导至SDL_ttf,这是正确的库。
使用示例(只有额外代码,假设您已调用SDL_Init
,已创建SDL_Window
并且您有SDL_Renderer* renderer
该窗口。
const SDL_Rect* dstrect;
SDL_Color color;
TTF_Init();
TTF_Font* font = TTF_OpenFont("font.ttf" /*path*/, 15 /*size*/);
SDL_Surface* textSurface = TTF_RenderText_Blended(font, "Text to render", color);
SDL_Texture* textTexture = SDL_CreateTextureFromSurface(renderer, textSurface);
SDL_RenderCopy(renderer, textTexture, NULL, dstrect);
SDL_FreeSurface(textSurface);
SDL_DestroyTexture(textTexture);
TTF_CloseFont(font);
TTF_Quit();
查看其他TTF_RenderText_*
方法的文档以及它们的不同之处。
由于您使用的是C ++(SDL和SDL_ttf都在C语言中),您可能想要围绕TTF渲染编写一些包装器。
答案 1 :(得分:0)
你需要SDL ttf库 - 它可以相对简单地处理truetype字体。
http://www.libsdl.org/projects/SDL_ttf/ 和文件 http://jcatki.no-ip.org:8080/SDL_ttf/ http://jcatki.no-ip.org:8080/SDL_ttf/SDL_ttf.html
特别参阅TTF_OpenFont
,TTF_CloseFont
的文档(打开和关闭字体文件)
和渲染函数,例如TTF_RenderText_Solid
在你的位置,我可能会编写一些辅助函数来处理包装这些文件的绘图文本,传递字符串,绘制位置等等,并在需要打印乐谱等时调用它们。