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 件のコメント:
コメントを投稿