0

我是 C++ 的新手,我正在尝试制作自己的字体绘图功能因此,我有一个字体类,其中包含许多像这样的 Image 对象:

  Image A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z;
  Image a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
  Image n0, n1, n2, n3, n4, n5, n6, n7, n8, n9;

我将从单个大图像文件中填充字符图像,并根据需要将它们绘制到四边形上。现在,显而易见的解决方案是将所有这些都保存在地图中。但是,我担心性能问题必须遍历整个地图以为每一帧显示的每个字符寻找正确的字母。

这里有什么捷径吗,还是仅此而已?

请注意,我知道那里可能有大量免费和开源的 opengl 文本绘图库,但我这样做是为了练习。我对当前问题的有效解决方案感兴趣,不一定是更好但完全不同的解决方案。除非我的方法在某种程度上根本上是错误的,否则就是这样。

4

1 回答 1

1

每当您发现自己编写了 62 个相同的变量定义时,都应该强烈暗示您正在做一些根本错误的事情。

字符代码是非常好的数组索引。或者,至少当 ASCII 是唯一的字符集并且最大值是 255 时,他们这样做了。在这些 Unicode 时代,您需要对分配的范围更加小心,但是从您的示例代码中您不感兴趣无论如何,除了字母数字。

由于您将此作为学习练习,因此在转换为数组后,请考虑将所有字符形状放在单个图像中(有时称为罢工)并仅存储每个字符的像素坐标,而不是整个图像。

于 2012-12-21T00:49:50.117 回答