はじめに †
まだまだ工事中です。気長にお待ち下さい
DxLibとは? †
DirectX8を利用したライブラリで、DirectXの決まりごととか面倒な事を意識することなくC言語で使えるライブラリ。
一応ゲーム製作にはこれを使ってもらう予定。使わなくても構わないけど。
3Dは不可。一応今3D用のDxLib開発が進んでいる。
DxLibのページ http://homepage2.nifty.com/natupaji/DxLib/
機能は以下のとおり。
- 簡易的な2D描画
- 画像描画(bmp,jpg,png,tga,dds,argb)
- 文字描画
- サウンド再生(WAV,OGG,MP3,MIDI)
- ムービー再生(AVI,MPEG等。要コーデック)
- ジョイパッド・マウス・キーボードによる入力に対応
- TCP/IPによる通信機能
詳しくはこちらへ http://homepage2.nifty.com/natupaji/DxLib/dxinfo.html
導入方法 †
作者のページに滅茶苦茶詳しい導入方法が載ってるので出来れば省略したい
と言うかやってることは作者のページの丸コピペ(ry
出来ればこちらを見てやってくださいhttp://homepage2.nifty.com/natupaji/DxLib/dxuse_bcc.html
そろそろCPad*1ではキツイので統合開発環境を用いる。ここではBCC developerを用いる。いや、VisualStudio使っても良いけど重いだろうし面倒だし。
http://www.hi-ho.ne.jp/jun_miura/
上のページからBCC developerをダウンロード、解凍、出てきたexeを実行
以下の画面が開くので最低限必要な設定だけする

デバッガはお好みで入れるかどうか決めてください。
次にhttp://homepage2.nifty.com/natupaji/DxLib/dxdload.htmlよりDXライブラリBorlandC++用をダウンロード、解凍
次にBcc Developerの方でファイル→新規作成 以下のように設定(ディレクトリは任意)

次にプロジェクト→プロジェクト設定→アプリケーションで、Windowsアプリケーションにチェックを移動。
最後に先ほど解凍したDxLibのプロジェクトに追加すべきファイル_BCC用以下のファイルを全てプロジェクトを作成する時に指定したフォルダに移行。これでBCCdevの方の設定は完了です。
これの中身を

ここに移動

次にbcc32.cfgとilink32.cfgを書き換えます。
上の二つのファイルはデフォルトであればC:\borland\bcc55\Binに入っているはずです。
bcc32.cfgは以下のように
-I"c:\borland\bcc55\Include"
-L"c:\borland\bcc55\Lib;c:\borland\bcc55\Lib\PSDK"
ilink32.cfgは以下のように
-L"c:\borland\bcc55\Lib;c:\borland\bcc55\Lib\PSDK"
変更。
以上で設定終了です。
この状態でサンプルプログラムを実行してみます。
新規作成→C/C++ファイルで適当な名前(Test01.Cppなど)をつけてOKを押す
それっぽい文章入力画面が出てくるので以下のプログラムをコピペ
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1 ; // エラーが起きたら直ちに終了
}
DrawPixel( 320 , 240 , 0xffff ) ; // 点を打つ
WaitKey() ; // キー入力待ち
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
プロジェクト→メイク 問題が無ければコンパイルが通るはず
あとは実行
BCCDevが使いづらい人はDxLib-どうしてもBCPadでコンパイルしたい時へ
よくあるエラーにエスパーでレス †
- 外部シンボル_mainが未解決と出るのですが
プロジェクト→プロジェクト設定→コンソールアプリケーションからwindowsアプリケーションへとチェックを移す
- 画像を出すプログラムを作ったのに画像を表示してくれません
画像をdebugフォルダの中へぶち込んでください
- ものすごい大量のエラーが出ました
多分DxLibの設定周りを間違えています。このページを読んでもう一回設定をしてください。
- プログラムを終了してもコマンドプロンプトで見るとプログラムがまだ残ってます
DxLib_End()関数が呼び出されていないものと考えられます。とりあえず繰り返し文の条件判定のところに片っ端からProcessMessage()!=-1をぶち込むと回避できるかもしれません。
- プログラムが一瞬で終了します
ゲームメインループから一瞬で脱出しているか何か不可思議な現象が起こっているかのどちらかです。Log.txtを見てみると幸せになるかもしれません。
- Log.txt見たら24ビットに対応してないとか何とかかんとか
デスクトップで右クリック→設定→設定タブ→画面の色を16ビットにする
- ある程度時間がたったら強制終了します。再現性がわかりません
log.txt見て考えてください
- 上記以外のエラーが出ます。何が起こってるかさっぱりです
ググれ。大抵DxLibのバグじゃなくてお前が悪い。
参考ページ †
C言語~ゲーム製作の館
ここにたいていのことは載ってます
Javaでゲーム作りますが何か?
ゲームのアルゴリズムが分からなかったらここへ。
DxLibを用いたゲームの例: †
Tetris
STG
その他企画 †
2008年度高専祭企画