イメージ出力@SDLサンプル
VC++の補完機能を実現しようと、躓いた主です。
EclipseやVC++の補完機能(Ctrl+Space)がメッセンジャーのロック機能で乗っ取られていたことを初めて知りました。
まさかメッセンジャーとは…Orz
さて、シューティングを移植する前に、SDLの画像と文字出力方法のサンプルを作ってみようと思います。
SDLのマニュアルやサンプルを見ながら…
基本的な流れは以下の通り
/*サーフェスにビデオモード設定*/ screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE); /*ビットマップ読み込み*/ image = SDL_LoadBMP(fname); /*サーフェスに書き出し(コピー)*/ SDL_BlitSurface(image,&sr,screen,&dr); /*スクリーンバッファを交換*/ SDL_Flip(screen);
この流れで画面に表示できます。
スクリーンバッファの概念は知っていますが、内部的にどうなっているのかはわかりません。。。。
次に、文字出力です。
ここでは、TrueTypeFontを使う為、SDL_ttfを使います。
SDL_ttf.dllとlibをlibフォルダに格納、
sdl_ttf.hをincludeフォルダに格納して、いざ…何をすればいいの?
はい。主はフォントを使うことに慣れていませんでした。
とりあえず、フリーのフォントをもらってきました。
フォントを・・・?読めばいいのかな。普通に読むといいのかな。フォント用に読む関数とかあるのかな。フォントずれたりすることってあるのかなといろいろ考えますが、結局ファイルとして読み込めばいいです。難しく考えすぎたです。
あとは、配布元にリファレンスがあったので見てみて、他サイトと見比べて…と。
だいたいの流れはこんな感じになりました。↓
/*フォント読み出し*/ fp = fopen( MIKA_FONT, "r" ); /*フォントを…定義??*/ font = TTF_OpenFont(MIKA_FONT, 16); /*サーフェス出力*/ text = TTF_RenderUTF8_Solid(font,"testttesttetetetetsttest....",cl); /*サーフェスに書き出し(コピー)*/ SDL_BlitSurface(text,NULL,screen,NULL); /*スクリーンバッファを交換*/ SDL_Flip(screen);
これでいけるはず!。
と、ここで躓き。
sdl_ttfを依存ライブラリに登録しておらず、外部参照できませんでした。
libやdllの場所が悪いの!?と散らばったlibやdllが多数。
問題解決後、大量にゴミ箱へ。。。。(・w・;
次は、画像表示関数作って、先のシューティングプログラムを移行してきたいと思います。