「steph52_VCmemo」の編集履歴(バックアップ)一覧に戻る
steph52_VCmemo - (2006/12/28 (木) 16:45:29) の編集履歴(バックアップ)
プログラミング覚書。
C++をかじった程度の人間がRPGライクなGUIを作れるようになるまで。
(かなり素人の主観で書いてます。間違いがあったら指摘してください)
C++をかじった程度の人間がRPGライクなGUIを作れるようになるまで。
(かなり素人の主観で書いてます。間違いがあったら指摘してください)
環境選び
C++開発環境で一般的なのはVC++とBCB?
一般にはVC++が広く使われていると思う。
ライブラリもVC++にのみ対応してるのが結構あるような。
あちこち見る限り、VC++が使えればゲーム業界では無問題らしい。
一般にはVC++が広く使われていると思う。
ライブラリもVC++にのみ対応してるのが結構あるような。
あちこち見る限り、VC++が使えればゲーム業界では無問題らしい。
現在Express Editionが無料で落とせるのでこれを落とす。
さらによく分からないけどMicrosoft Platform SDKも落としておくと良いらしい。
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
に従ってインストールし、パスを設定する。
続いてDirectX SDKをインストール。
http://www.microsoft.com/japan/msdn/directx/downloads.aspx
includeに$(DXSDK_DIR)Includeを
libraryに$(DXSDK_DIR)Lib\x86を追加する。
さらによく分からないけどMicrosoft Platform SDKも落としておくと良いらしい。
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
に従ってインストールし、パスを設定する。
続いてDirectX SDKをインストール。
http://www.microsoft.com/japan/msdn/directx/downloads.aspx
includeに$(DXSDK_DIR)Includeを
libraryに$(DXSDK_DIR)Lib\x86を追加する。
さてこれで開発環境はできたらしいのだが、1から書くってなかなか出来ないっすよね。
なんちゃってプログラマな俺は適当なサンプルコードがないとはじめることが出来ない。
いやだから成長しないんだけど。
なんちゃってプログラマな俺は適当なサンプルコードがないとはじめることが出来ない。
いやだから成長しないんだけど。
とりあえずここを見ながら学習することにする。
http://www.tkb-soft.hmcbest.com/program/directx/index.htm#game
VC++のバージョンが違うけど勝手に変換してくれるので無問題。
http://www.tkb-soft.hmcbest.com/program/directx/index.htm#game
VC++のバージョンが違うけど勝手に変換してくれるので無問題。
ほかにも、DirectXをラップする?ようなライブラリEasy Link Library
http://ponk.jp/el/index.php
とか、あるいはDirectXとは別系統のライブラリ?Simple Directmedia Layer
http://tokyo.cool.ne.jp/sdl/
とかが見つかった。
後者は配布時にランタイムが別途必要になりそうなのでやめる。
前者はどうにもDirectXが難しかったときに頼ることにしよう。当面は無視。
http://ponk.jp/el/index.php
とか、あるいはDirectXとは別系統のライブラリ?Simple Directmedia Layer
http://tokyo.cool.ne.jp/sdl/
とかが見つかった。
後者は配布時にランタイムが別途必要になりそうなのでやめる。
前者はどうにもDirectXが難しかったときに頼ることにしよう。当面は無視。
参考サイト追加。
http://lacc.biz/cpp/cpp.html
http://lacc.biz/cpp/cpp.html
色々見てるとVC++6.0あたりの記述が多く、2005の情報は少ないっぽい。
いくつか自分が引っかかったところをば。
いくつか自分が引っかかったところをば。
- ddraw.libをリンクするためには、
- 「ビルド」 → 「設定」 → 「リンク」タブ → オブジェクト/ライブラリモジュールに「ddraw.lib」を書き込む、ではなく
- 「プロジェクト」→「プロパティ」→「構成プロパティ」→「リンカ」→「入力」→「追加の依存ファイル」に「ddraw.lib」を書き込むとうまくいくらしい。
- 文字セットで引っかかるようなエラーが出た場合、
- 「構成プロパティ」→「全般」→「文字セット」を「マルチバイト文字セットを使用する」にしてあげると良いらしい。
- 参考:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=2236318
さてなんかサンプルコードはどれも全画面版が多いのですが
個人的に全画面は嫌いなのでなんとか解除しようとがんばってました。
SetCooperativeLevel(hw,DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE)を
SetCooperativeLevel(hw,DDSCL_NORMAL)にするだけじゃだめで、
いったい何でー!?と泣きそうになってましたが、なんでも
SetDisplayMode(640,480,8)は全画面モードでしか使えないようで。
個人的に全画面は嫌いなのでなんとか解除しようとがんばってました。
SetCooperativeLevel(hw,DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE)を
SetCooperativeLevel(hw,DDSCL_NORMAL)にするだけじゃだめで、
いったい何でー!?と泣きそうになってましたが、なんでも
SetDisplayMode(640,480,8)は全画面モードでしか使えないようで。
さて次はダブルバッファリング用にサーフェイスを2枚、画像保管用に1枚用意してってところですが、ここでもまた全画面に苦しまされる。ううう、なぜみんなそんなに全画面にしたがるのか。640x480を全画面にしても汚いだけじゃないか!! うー眠い。明日にしよう。
だいぶ間が空きましたが進捗です。
今は簡単にマップチップやキャラチップを並べるところまでを作ってみた。
素材はFirst Seed Material様から拝借。
次はマップに障害物を設置してキャラをランダムウォークさせるまで。
そしたら客生成ルーチンを組み込んで、キャラチップを右クリックしたら
対応するキャラデータを画面右側に表示させるところまで作ろうと思う。
素材はFirst Seed Material様から拝借。
次はマップに障害物を設置してキャラをランダムウォークさせるまで。
そしたら客生成ルーチンを組み込んで、キャラチップを右クリックしたら
対応するキャラデータを画面右側に表示させるところまで作ろうと思う。