前のページ | 次のページ

title image

ホーム | トップ | 掲示板 | FAQ | 検索 | サイト情報 | リンク

+ ホーム > トップ > ゲーム制作講座 > MAGファイル

MAGファイルを使おう

ゲームでは多くの画像ファイルを使用しますね。Windowsゲームでは扱いやすいビットマップファイルを使用することが多いと思いますが、このBMPファイルというのはほとんど無圧縮で利用されるためディスクを大量に消費してしまいます。

今回は、BMPに比べて圧縮率が高いMAG形式の画像を簡単に利用できる、TM2BC for C++Builder の紹介をしたいと思います。

MAG形式の特徴

 ・他の圧縮形式より,比較的展開速度が高速
 ・16色と256色に対応
他にもさまざまな特徴がありますが、ゲームに関係が深いのは上の2点です。
フルカラー画像に対応していないのがネックですが、大抵のゲームではフルカラーを必須とすることは少ない(ほんまかいな)ので大目に見ましょう。
圧縮形式が比較的アニメ絵に強いので、そういったゲームには特に有効です。

TM2BC for C++Builder (ダウンロードはこちらへ)
TM2BCは、道上雄一朗氏が作成したMAG画像デコードコード"M2BC"をBorland C++Builderで扱いやすいように変更したものです。
現在のところ、画像をロードする機能しかサポートされていませんが、その分扱いは簡単です。
※M2BCのコードでは、ファイル内のコメントや作者情報も取り出せるように作られていますが、TM2BC for C++Builderではそれらの関数をPrivate内に隠蔽してしまっています。それらの情報が必要な場合、適宜コードを変更して使ってください。

TM2BC for C++Builderの使い方
まず、メニューの[プロジェクト−プロジェクトに追加]で
"M2BC_BCB.CPP"をプロジェクトに追加して下さい。
次に、ソースファイルの先頭位置に以下の行を追加しておきます。
#include "M2BC_BCB.H"

続いてオブジェクトの宣言、生成、解放を行うコードを追加します。
まず、ヘッダファイルのPrivate部などで以下のように宣言します。青色の部分を追加
class TForm1 : public TForm
{
__published: // IDE 管理のコンポーネント
private: // ユーザー宣言
  struct TM2BC *M2BC;
public: // ユーザー宣言
};


次にフォームの生成、解放イベントで
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 M2BC = new TM2BC();
}
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
 M2BC->Free();
}

これで準備は終わりました。

画像のロードの例
例えばTImageコンポーネントに画像をロードする場合、BMPを使っているときには
Image1->Picture->LoadFromFile(ファイル名);
としていました。
これをMAGファイルをロードするように変更するには以下のようにします。
M2BC->LoadFromFile(ファイル名, Image1->Picture->Bitmap);

BMPのロードに比べて多少面倒ですが、これで肥大化する画像ファイルをある程度押さえることができます。

Text & Programing by みっくす


  目次に戻る


 ご意見、ご感想などありましたら、メール又は伝言板への書き込みをお願いします。

E-Mail : m_hikida@muh.biglobe.ne.jp

Copyright (c) 1997-2007 Masaya Hikida