7.25.2008

今日もきょうとてSDL(SDL_ttf で日本語を使う。)

そんなわけでLesson7。
SDL_ttfを利用して文字列を描画するっていうお話。

レッスンサイトでは、lazy.ttfってオリジナルのフォントを使っているけれど、私は使用条件のゆるいみかちゃんフォントを利用することにした。

そのほか、フリー(あるいはそれに近い条件)で使用できるフォントについては、このページがよくまとまってると思う
真面目なゲームとかじゃ、明朝やゴシックを使いたいこともあるだろうから、状況によっては参考にさせてもらおう。

さて、レッスンサイトのプログラムをそのまま使うと、実は日本語が表示できない。
以前に、今回構築したMinGWで日本語を通すにはソースをSJISにエンコする必要があるって書いたけれども、実はSDL_ttfに限って言えば、それも通用しない。

そのまま通しても、SJISにしても日本語が通らない。
じゃあどうするか?
レッスンサイトで
TTF_RenderText_Solid
となっているところを、
TTF_RenderUTF8_Solid
として、ソースコードをUTF8で保存→コンパイルを通せば、下の画面のように日本語を表示できる。

あとは、
mingw-c++ filename -lmingw32 -lSDLmain -lSDL -lSDL_image -lSDL_ttf -mwindows
としてコンパイルを通せばOK。
そうそう、SDL_ttf.hを#includeで指定するのも忘れずに。

これでSDL_ttfはdevel-VC8をもってきて、ヘッダーとライブラリをいつもの場所にコピーしておけば使えることがわかった。

追々調べてみると、どうやらfreetypeライブラリが必要なのは、*NIX上で文字を描画する場合だけらしい。
(Macだと必要なのかな?)今回の環境は、Windowsへのクロスコンパイル環境だから、freetypeのインストールは必要ないという結論になりそうな感じ。

文字が描画できると、またいろいろ出来そうなことの幅が広がる気がするよね。

0 件のコメント: