【发布时间】:2016-12-19 12:52:58
【问题描述】:
我想用 SDL 和 SDL_ttf 实现一个简单的输入框。就像浏览器中的地址栏一样。
我猜用 SDL_ttf 检测鼠标选择的最简单和最有效的方法是什么。
假设框显示文本如下:
+--------+
| abcdef |
+--------+
用户在“c”和“d”之间单击,然后将鼠标向左拖动几个像素。现在我需要检测它是否选择了“c”字符。
SDL_ttf 库有几个函数来确定文本的度量。您可以使用TTF_SizeUTF8 计算整个文本的大小,还可以使用TTF_GlyphMetrics 确定单个字符的字形大小。
粗略的想法是创建一个特殊的数组,其中包含具有各自大小的所有单个字符,以确定它们在框中的位置。
您对如何轻松实现这一点有更好的想法吗?
【问题讨论】:
-
'All' 就 unicode 而言是一个巨大的数字,但是是的,类似的东西(例如,缓存最近使用的字形的值,但删除旧的字形)。或者,如果可以接受,就使用等宽字体。
-
是的,使用等宽字体会容易得多:)