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;

1つの大きな画像ファイルからキャラクター画像を入力し、必要に応じてクワッドに描画します。さて、明らかな解決策は、これらすべてをマップに保持することです。ただし、すべてのフレームで表示されているすべての文字の正しい文字を検索するために、マップ全体を反復処理する必要があるパフォーマンスの問題が心配です。

ここにショートカットはありますか、それともそれだけですか?

注意してください、私はおそらくそこにたくさんの無料でオープンソースのopenglテキスト描画ライブラリがあることを知っています、しかし私は他の何よりも練習のためにこれをしています。私は現在の問題に対する効率的な解決策に興味があります。必ずしもより良い解決策ではありませんが、まったく異なる解決策です。私のアプローチがどういうわけか根本的に間違っていない限り、それはそうです。

4

1 に答える 1

1

62個の同一の変数定義を記述していることに気付いたときはいつでも、根本的に間違ったことをしていることを強く示唆するはずです。

文字コードは、完全に優れた配列インデックスになります。または、少なくともASCIIが唯一の文字セットであり、最大値が255の場合に実行されました。最近のUnicodeでは、割り当てる範囲にもう少し注意する必要がありますが、サンプルコードからは興味がありません。とにかく英数字以外のもので。

これは学習演習として行っているため、配列に変換した後、すべての文字の形状を1つの画像(ストライクと呼ばれることもあります)に入れ、画像全体ではなく、各文字のピクセル座標を保存することを検討してください。

于 2012-12-21T00:49:50.117 に答える