我想用SDL和SDL_ttf实现一个简单的输入框。就像浏览器中的地址栏一样。
我猜测用SDL_ttf检测鼠标选择的最简单,最有效的方法是什么。
假设框中显示的文字如下:
+--------+
| abcdef |
+--------+
用户点击' c'并且' d'然后它将鼠标向左拖动几个像素。现在我需要检测它已经选择了' c'字符。
SDL_ttf库有几个函数来确定文本的度量标准。您可以使用TTF_SizeUTF8
计算整个文字大小,还可以使用TTF_GlyphMetrics
确定单个字符的字形大小。
粗略的想法是创建一个特殊的数组,其中包含各自大小的各个字符,以确定它们在框中的位置。
您对如何轻松实施这一点有更好的想法吗?
答案 0 :(得分:0)
即时渲染模式下的文本选择应从零开始进行,这是很多工作要做。许多即时gui库(例如imgui)都使用了传说中的stb_textedit,您可以在这里找到它 https://github.com/nothings/stb/blob/master/stb_textedit.h