コードスペランカー

ゲーム開発日誌など

DXライブラリ

ゲーム内でのポリゴンをGPUベースで描画する

DrawPolygonIndexed3D_UseVertexBufferという関数がある。この関数をつかうとGPUベースでのポリゴンの描画が可能だ。DrawPolygonIndexed3DではCPUベースなのでGUPベースより処理速度が劣る感がある。実際には頂点シェーダ2.0に対応したグラボが必要なようで…

アンセーフコード

C#ではポインタを扱う際には、このコードが危険であることを明示することが必要なようだ。C#単体ではまず使わないが、CやC++で書かれたDLL等を使うときには必要になる処理だ。 unsafe { int i = 0; int* p = &i; } という具合に書いたりする。 特にvoid型の…

DXライブラリでのマルチスレッド

以前、DXライブラリを使ってのマルチスレッドプログラムは無理っぽいと書いたが、なんとかいけそうなので、メモしておく。 // マルチスレッドフラグ DX.SetMultiThreadFlag(DX.TRUE); // DXライブラリの初期化 DX.DxLib_Init(); という感じに書いておく…

DXライブラリでジョイパッド状態の詳細な取得

ハットスイッチが使えねーじゃん!とか思っていたら、実は使えた話。 詳細はここ 概要を書いておくと 作り始めたときとコントローラーの想定仕様かわってるよ!なのでDirectInputから直接もらう方法作ったよ!ってことらしい。リファレンスにのってないって…

DXライブラリではマルチスレッドはつかわんほうがいい

お題のとおりに、DXライブラリを使うのなら、マルチスレッドは使わないほうが良いらしい。 具体的には、同時に実行してはいけない組み合わせというのがあるので、やめたほうがいいということです。 この辺参照 ってなわけで、シーンの初期化と更新の自動化…

テクスチャのアニメーション

DXライブラリを使ってポリゴンを表示させるために必要な頂点情報は下記のような形式の構造体に治まっている。 // 3D描画に使用する頂点データ型 struct VERTEX3D { // 座標 VECTOR pos ; // 法線 VECTOR norm ; // ディフューズカラー COLOR_U8 dif ; //…

DXライブラリで好きなフォントを使いたい

DXライブラリを使ってると、システムにインストールされているフォントは使用可能なのだが、されてないフォントは当然使用できない。ユーザーが俺の使って欲しいフォントを持っているをは限らないし、添付したフォントファイルを一々インストールしろとも…

DXライブラリの癖

気がついたことをメモしておく DX.SetDrawBlendMode(DX.DX_BLENDMODE_ADD, 255); // なんか描画処理 DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); 見たいな感じに加算ブレンドやらアルファブレンドをやるときには 描画順番に気をつけろ 2Dな処理だと…