2008年04月26日


Windows&GP2X SDLゲームプログラミング講座 【フォント表示関数(番外編1)】

 

Windows & GP2X自作ゲームプログラミング講座、今回は番外編1と言う事で、日本語文字(半角英数、記号、ひらがな)を表示する関数とオリジナルフォントをご提供いたします。GP2Xの他、Windows単体でもご利用可能です。ご自身の作成したプログラムにも、自由に組み込んでお使いいただけます。


 
  はじめに

今回は、番外編と言う事で、GP2Xプログラミングや、SDL、C++言語などに関する詳しい説明は行いません。その代わりにゲーム作成に役立つ(と言うか必須?)の文字を表示する関数とそのサンプルプログラムをご紹介いたします。

この記事では、これまでの記事で紹介した手順で、プログラミング開発環境がすでに準備されているものとしています。開発環境のインストールが完了していなかったり、他の手順で設定されている場合などは、うまくコンパイル、実行ができない場合があります。GP2Xでのプログラミング環境の準備と詳しい実行方法は、以下の記事をご覧下さい。

Windowsでのゲームプログラミングの準備と、GP2XとWindowsのクロス開発環境についてはこちらです。


無料ツールでWindows上でもGP2Xの自作ゲームを動かそう

GP2Xでの開発環境の導入、GP2X用サンプルプログラムの実行方法はこちら。


ゼロから始める「GP2X」自作ゲームプログラミング1(超入門編)


<記事全般のご注意>

※VC++2008でうまくコンパイルできない時は
メニューバーの「プロジェクト」からプロパティを開き、「構成プロパティ」の「全般」から、使用する文字セットを「マルチバイト文字」に変更しておきます。こうしておかないと、日本語が文字化けしたり、正体不明(?)のエラーが出力されてコンパイルできなくなる場合があります。

※この記事では、制作環境として「GP2X-F200」および「WindowxXP」を使用しています。

GPX GP2X-F200 タッチパネル液晶搭載 Linux携帯ゲーム機
GP2XーF200 【Amazon.co.jp】


  ダウンロードとサンプルのコンパイル、ビルドの手順

この手順では、フォント表示関数サンプルプログラムのソースコードから、実行可能なバイナリーファイルを作成する手順をご紹介します。

まず、フォント表示関数のファイルをダウンロードして、すべて解凍(展開)しておいて下さい。この中には、あらかじめコンパイルされた実行可能なバイナリーファイルや、関数で使用するオリジナルフォント、サンプルプログラムのソースコードも含まれています。

GP2X用(DevkitGP2X for Windows)
b01_font_gp2x.zip (308KB)

Windows用(Visual C++ 2008)
b01_font_win.zip (767KB)

Windowsの場合は、以下のような順序でプロジェクトを作成し、コンパイル、ビルドします。

  1. Visual C++ 2008を起動し、「ファイル」メニューから「新規作成」「既存のコードからプロジェクトを作成」を選びます。
  2. 作成するプロジェクトの種類で「Visual C++」を選択し、「次へ」をクリックします。
  3. プロジェクトファイルの場所の「参照」をクリックし、さきほど解凍したファイルのあるフォルダを指定します。
  4. 「プロジェクト名」に適当な名前(ここでは”b01_font”とします)を入力し、「完了」をクリックします。
  5. 右向きの緑色の三角印の横にある「Debug」とかかれている場所をクリックし、「Release」に変更し、キーボードのF7キーを押します。ファイルを解凍したフォルダ内に”Release”フォルダが作成され、その中に実行可能なバイナリーファイル”b01_font.exe”が作成されます。”Release”フォルダ内に作成されたその他のファイルは不要なファイルですので削除してかまいません。
    (F7の代わりにF5キーを押すことにより、Visual C++から直接実行する事もできます)

GP2Xの場合は、以下の順序でコンパイルして下さい。GP2X用もWindows上でダウンロード、解凍、コンパイルからビルドまでを行います。

  1. ダウンロード、解凍し、できたファイル全てを適当な場所(今回は”C:\myworks\b01_font_gp2x”内)に移動します。(※フォルダが2重にならないようご注意下さい)
  2. コマンドプロンプトを開きます(WindowsXPの場合、「スタートメニュー」の「すべてのプログラム」の「アクセサリー」内)
  3. 次のようにコマンドを入力し、カレントパスを移動します。「”cd c:\myworks\b01_font_gp2x”、enterキーを押す、”c:”、enterキーを押す」
  4. ”make”と入力し、enterキーを押すと、フォルダ”c:\myworks\b01_font_gp2x”内に、GP2Xで実行可能なバイナリーファイル”b01_font.gpe”が作成されます。


  サンプルを実行する

作成したサンプルの実行は、以下の手順で行ってください。

Windowsの場合

”Release”フォルダ内に作成された”b01_font.exe”は、単体では実行できません。次のような手順で必要なファイルを追加します。

  1. ファイルを解凍したフォルダ内、さらに”バイナリー”フォルダ内にある”jfont01.bmp”を”Release”フォルダ内にコピーします。
  2. ファイルを解凍したフォルダ内の”バイナリー”フォルダ内にある”SDL.dll”を”Release”フォルダ内にコピーします。
  3. ”b01_font.exe”をダブルクリックなどで実行できるようになります。サンプルを終了するにはウインドウの「×」ボタンをクリックして下さい。

GP2Xの場合

  1. GP2Xで使用するSDカードを用意し、”game”フォルダ内に適当なフォルダ(ここでは”b01_font”とします)を作成します。(”game”フォルダがない場合は、それも作成します。)
  2. ”c:\myworks\b01_font_gp2x”内にある”b01_font.gpe”ファイルと”jfont01.bmp”ファイルの2つを、上記で作ったフォルダ内にコピーします。
  3. GP2XにさきほどのSDカードを挿入し、電源を入れ、ゲーム実行メニューから”b01_font.gpe”を選択し実行できます。サンプルを終了するには「A」ボタンを押して下さい。




  フォント表示関数の説明

おおまかな利用法は以下の通りです。実際の使い方はサンプルプログラムのソースコードを参照して下さい。

1.”sdl_jfont.h”と”jfont01.bmp”ファイルをソースと同じフォルダにコピー。
2.”#include "sdl_jfont.h"”をソースに追加。
3.SDLの画面Surfaceを作成し、そのハンドルを引数にして”sdl_jfont_init”関数を呼び出し、初期化(実行開始時に一度だけ)
4.”sdl_jfont_print”または、”sdl_jfont_mprint”関数を呼び出し、画面上に文字を描画。
5.プログラムの終了前には”sdl_jfont_release()”関数(引数なし)を呼び出し開放

<関数の解説>

■ sdl_jfont_init(SDL_Surface *sdl_screen)
引数は初期化済のSDL_Surface(画面用)のポインター。再定義したい場合は、一度”sdl_jfont_release”を呼び出し開放する事。

■ sdl_jfont_prinit(SDL_Surface *sdl_screen, int x, int y, char *format, ...)
引数1はSDL_Surfaceのポインター。画面を渡せば(裏画面に)直接描画、バッファを渡せばバッファ上に文字を描画できる。int x、int yは描画位置をドット単位で指定、formatは文字列を半角で(カタカナはひらがなに変換され表示される/最大1023文字まで)指定、以降のパラメータと合わせてprintf命令と同様のフォーマット記述ができる。改行は行われない。画面の端は自動的にクリップされ、座標に負の値も指定可能。
例:sdl_jfont_print(sdl_screen, 0,0, "SCORE %d", score);

■ sdl_jfont_mprinit(SDL_Surface *sdl_screen, int x, int y, int z, char *format, ...)
ほぼsdl_jfont_printと同様で、zで改行するまでの文字数を指定できる。改行後の開始位置はxに揃えられる。半角かなの濁点「゛」が改行位置にある場合は改行せず、同じ行の最後に続けて描画する。画面外に描画しても自動的な改行は行わない。

■ sdl_release(void)
プログラムを終了する前に呼び出し、関数を開放して下さい。引数はありません。


  関数の利用について

この関数はフリーウェアです。著作権は「すごろー」が保有しています。配布元のURLは「すごろーのスゴブロク http://sugoro.seesaa.net/」です。

個人利用(商用、非商用を問わず)に限り、関数およびサンプルプログラムのソースコード、付属のフォントを自由に使用する事ができます。詳しいご利用に関しては、それぞれのファイルに付属の「readme.txt」をご覧下さい。


  次回予告

さて、次回も番外編ですが、ゲームを作成するのに必要な一通りの事を行うサンプル(キャラクターの表示、文字の表示、音楽の再生、効果音の再生、キー入力、当たり判定)をご紹介したいと思っています。


【広告】 今回の開発も行える、小さなパソコン『Eee PC』の魅力

・実売4万円台。魅力的な価格設定、でも、WindowsXP搭載フルパソコン。
・高速なSSDによるスカッと気持ちの良い動作。
・SSD搭載による故障に対する堅牢性、持ち運び時の安心感。
・パワーファンレス&HDDレス。動作時は、ほぼ無音。
・愛着のわく優れたデザインとコンパクトなボディー。
・重量1kgは実際に持つと思ったよりもはるかに軽い。

また、ハード設計が絶妙で、無茶をさせようと思えば、それに応えてくれる。まさに使う人それぞれの、自分だけのEee PCに育てられる、と言う魅力もあります♪


ASUS 『Eee PC 4G-X』  パールホワイト・ギャラクシーブラック

売り切れの場合などは、こちらもどうぞ。

「Eee PC」の販売店を検索 【楽天】


★関連記事(ゲームプログラミング)
無料ツールでWindows上でもGP2Xの自作ゲームを動かそう
ゼロから始める「GP2X」自作ゲームプログラミング1(超入門編)

★関連記事(GP2X)
Linux携帯ゲーム機『GP2X-F200』の良いところ、悪いところ
【タッチパネルLinuxゲーム機 GP2X-F200】恒例の比較テスト
液晶品質と内蔵ソフトを検証 【タッチパネル携帯ゲーム機 GP2X-F200】
話題の携帯ゲーム機『GP2X-F200レビュー』付属ゲームソフト紹介・その1

★関連サイト(GP2X)
GP2X 日本販売代理店 【オープンメディア株式会社(旧社名テルテン)】

★ご意見、感想や質問などはこちら
お名前:  

この記事へのTrackBack URL
http://blog.seesaa.jp/tb/94804248
※ブログオーナーが承認したトラックバックのみ表示されます。
120×60

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。