結果だけでなく過程も見てください

日々の奮闘を綴る日記です。

ゲーム

DirectXのテクスチャをファイルからではなくオンメモリからロードする

DirectXでは、以下の方法でテクスチャをファイルからロードできます。 static const char* TEXFILE = "C:\\temp\\tex.dds"; IDirect3DDevice9* pDevice; // 各自作成しておいてね IDirect3DTexture9* pTexture = NULL; : D3DXCreateTextureFromFileEx( pDev…

VisualStudioでC/C++ビルド時,stdio.hやkernel32.libなど基本的なモジュールが見つからないときの対処法

※2016/12/16全面刷新 ※私の認識に誤りがあり,どうやらVisualStudioのincludeやlibのパス設定方法がまずかったようです。 ※またパス展開用のマクロ名が,古いVisualStudioのもの(つまり移行時に発生しやすい?)だった場合も ※問題が起きる気がします。。。 …

VisualStudio2010でboostをビルドする

いいかげんOSと開発環境が古くなってきたので、 新しい環境に移行することにしました。 項目 移行元 移行先 OS WinXP(32-bit) Win7(64-bit) VisualStudio 2005 2010 VisualStudioのバージョンアップに伴い、各種ライブラリも再ビルドする必要があります。 今…

小数の計算にはfloat型よりもdouble型を使おう(C/C++)

ゲームプログラミングでのお話です。ゲームプログラミングでは、通常キャラクターの速度や座標を小数で保持します。DirectXでは、これらの値を保持するためのベクトルクラスが定義されています。 D3DXVECTOR3などのクラスです。このクラスはx,y,zのメンバ変…

C#でゲームのマップエディタを作る (2)

前回記事の続きです。 http://d.hatena.ne.jp/taiyakisun/20120331#1333204146今回はピクチャボックスの描画を行います。 まずは、C#で変換行列を作成し、描画するコードを書くための肩慣らしとして、 エディタのグリッド線を描いてみましょう。頂点のフォー…

C#でゲームのマップエディタを作る (1)

自作ゲームのマップデータ(Luaスクリプト)を テキストエディタで編集するのがしんどくなってきたので マップエディタを作ることにしました。C#もGUIツールを作成するのも始めてなので 作成過程で学んだことを書いていきたいと思います。 間違いがあったらツ…

DirectXで円形ワイプエフェクト

言葉でどう表現していいかわからないのでタイトル名が正しいかわからないのですが、 要は下の図のようなエフェクトの作り方を説明します。実際のゲームで使われているのは、スーパーマリオワールドのゴール後とか、 スーファミのゼルダの伝説でダンジョンか…

実践的な衝突判定(AABB編)

自作ゲームに組み込んでいる衝突判定について、整理も兼ねてご紹介します。 説明を簡単にするために2D空間で説明します。 バウンディングボリューム バウンディングボリュームについては、容易に判定可能で実用的ということで 各軸に平行な四角形(以下の図の…

暗号化等が施されたLuaファイルの読み込み方法

今回はファイル読み込みのお話です。暗号化の話ではないのであしからず。通常Luaファイルの読み込みは、以下の関数やマクロを使用して行います。 luaL_loadfile(L, filename) luaL_dofile(L, filename)テキストで書かれたLuaファイルをロードする場合は上記…

Lua/Luabind/コルーチンの使い方まとめ その2

前回の続きです。今回は「コマンド実行」部分です。 コマンドとは? ここで言う「コマンド」とは以下のような1命令のことと定義します。 ・プレイヤーを移動させる ・所持金を増やす ・アイテムを増やす ・効果音を鳴らす ・ゲームのフラグ(変数)を操作する…

Lua/Luabind/コルーチンの使い方まとめ その1

最近、自作ゲームのスクリプトをLuaにシコシコ移植しています。そんなわけで今回は移植作業中に得た知識を備忘録も兼ねてまとめておきます。バインドにLuabindを使ってます。 LuaやLuabindのセットアップについては前の記事を参考にしてください。●C++で組み…

3D空間に2Dオブジェクトを描画するときにy座標だけ1ドット下にずれる(4)

さてさて。 今まで何回か題名の話を書いてきましたが、 結局なにをやりたいかっていうと、 テクスチャを貼り付けた板ポリゴンがズレなく ドットがつぶれることなく(UV値を正しく算出する)描画することでした。 で、色々調べたり聞いたりしたところ 1つのイメ…

3D空間に2Dオブジェクトを描画するときにy座標だけ1ドット下にずれる(3)

すごく画面端にドットを打ちたい──! という希望とは裏腹に思った通りに ドットが打てない日が続いてます。こんばんわ。 前回800x600や1024x768にすれば丸め誤差の問題は 解消できるとか言いましたがウソです=□●_ 実際やってみましたが、結果は変わらず。 …

3D空間に2Dオブジェクトを描画するときにy座標だけ1ドット下にずれる(2)

前回の続きです。原因?がわかりました。 環境なんかは前回の記事を参照してください。 原因は頂点座標の丸め誤差によるズレでした。 ここ、当たりはつけてたのですが透視変換後の値が どうなるのか理解が足りてなかったので気づかなかったのですT◇T PIX f…

3D空間に2Dオブジェクトを描画するときにy座標だけ1ドット下にずれる(1)

基本的な方法は以下のサイトの通りなのですが ●スクリーンにある2D板ポリゴンを行列で操作する http://marupeke296.com/DXG_No51_2DBillboardWithOperatingMatrix.html 今ワールド変換行列の平行移動で、どのように値を指定すれば 画面四隅ぴったりに2Dオブ…

DirectXでテクスチャに対してレンダリングを行う方法

通常、DirectXで3Dオブジェクトをレンダリングするときの レンダリング先はIDirect3DDevice9デバイスを作成したときに 一緒に作成されたバックバッファになります。 今回はレンダリング先をバックバッファからテクスチャに 変更する方法を紹介します。 まず…

Winterbells - うさぎが空に登っていくゲーム

おもしろかったので、昔見つけたFlashのゲームを紹介します。 Winterbellsと言うゲームです。 http://www.ferryhalim.com/orisinal/g3/bells.htm 操作はカンタンで、マウスで雪うさぎを左右に操作し、落ちてくるベルを 取りながらどんどん上へ登っていくゲー…

ほげほげローダ

自分は普段から自作ゲームを作っているのですが そこでよく登場するのが、ローダ。マップローダ、イベントローダ等。 ディスクやメモリからデータを読み、プログラムで使用するメモリ領域に データをセットする役割を持ちます。 このローダの実装方法ですが…

プライバシーポリシー お問い合わせ