首页 > 解决方案 > 在 SDL2、C++ 中渲染时查找文本纹理中最后一个字符的坐标

问题描述

在 SDL2 中,我试图将文本包含在文本框中。对于我来说,我不想创建一个布尔函数,它只允许用户向其中添加文本,前提是它还没有到达文本框的末尾。这应该需要它的文本框宽度和文本的文本大小,但是如果它已经到达它的末尾,我找不到任何帮助,因为每个字母和数字都是不同的宽度。我能想到的最好方法是找到文本字符串最后一个字符的 x 位置,但是我不知道该怎么做,因为 SDL2 的文本字体/渲染/纹理/表面需要初始位置来渲染文本,到目前为止我所尝试的是将字符串的长度乘以文本大小并检查它是否小于文本框宽度的宽度,但这主要是不足的,但是在某些字符上却没有。似乎创建一个公式来确定它从最初的 X 点开始有多远并不是一件线性的事情。另一种可能性是从其文本大小中找到每个单独的字符宽度,但我也不知道该怎么做。

标签: c++sdl-2

解决方案


推荐阅读