コードスペランカー

ゲーム開発日誌など

2011-01-01から1年間の記事一覧

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

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

壁との当たり判定

壁のように自分から動かないオブジェクトの当たり判定は、能動的に行う必要がない。なので、その他の動くオブジェクトと別の当たり判定として考えるのが妥当だと考えられる。 壁となるものが一定の大きさであると考えると、能動的に当たり判定を行うオブジェ…

大量の当たり判定(4分木空間分割)

内容的にはとっても多いあたり判定を少なくする方法の続きとなる。色々な大きさの当たり判定がごちゃ混ぜになっている状況で、比較的早く総当り判定が出来る方法があったので、メモしておく。 その名を4分木空間分割という方法で詳しくはここで紹介されてい…

自動ダンジョン作成

ローグ風のダンジョンものの定番、日本の有名どころだと「不思議なダンジョン」シリーズのあのダンジョンだが、いざ作ろうかと思うと結構面倒だったりする。 早速、参考になりそうなところをGoogle先生に聞いてみる、例えばこことかが候補になる。 この方法…

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

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

DQフォントの仕様

DQフォントを縦32ドットで表示した場合、横幅は17ドットになる。枠線の上下は16ドットけずれる。

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

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

Listの管理を失敗すると・・・・

Listの中身は配列なのだが、こいつの管理に失敗するとメモリの中身がクラッシュするらしい。クラッシュの規模は配列の中身だけじゃなく、その配列をもつオブジェクトにも影響を与えるようで、どこがどうなったのかよく分からんが、ついさっきまで参照してい…

シーンの初期化と更新の自動化

XNAモドキの話なのだがXNAの基本処理は ってな感じで行われている。オレのシステム設計としては、このプロセスが複数同時に動いて欲しい。しかも、後で追加したり、削除しながら動いて欲しいのだ。 「更新⇒描画」の部分だけなら「更新1、更新2、更新3、描…

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

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

とっても多いあたり判定を少なくする方法

画面いっぱいどころか、画面外にも大量に当たり判定が存在していたらどうだろうか?いまオレが使っているマシンだと、単純な短冊形の判定でも4000回ぐらいから1フレームに収まるかどうか怪しくなってくる。しかも相互干渉したりするとひどいことになるのは前…

当たり判定の多さ

最近流行の弾幕シューティング場合、画面中に1000個以上の当たり判定がうろうろしてるわけなのだが、当たる対象は自機1つのみなんで、1フレームに弾の数だけ判定すれば良い状態になる。実は最近のPCの性能を考えるとあまりたいした処理ではない。 では、敵A…

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

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

ってなわけで、ソートをすることにしたわけだが

DXライブラリの癖の続き ソートが必要になったので、適当にソートしてみることにした。 手始めに、Listを新たに作って、挿入していく形式だ。当然ながらむちゃくちゃ遅かった。Listは挿入可能だが、元が配列なだけに、むちゃくちゃ遅い、要素数が増えるとさ…

DXライブラリの癖

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

そして3Dダンション作成へ

方針を決めたところで、実際にダンションを作ってみる。はじめは、立方体を複数並べてダンジョンを作ろうと思ったのだが・・・「なんかカメラの角度によって、隙間ができてないか?」ってことに気がついた。 隙間なく配置したはずの立方体の間が見える一瞬が…

だらだらゲーム開発

ダンジョン探索型のゲームを作ろうかと思い、ゲーム内にちょっとした立体感が欲しいと思ったオレは、クオータービューならいけるんじゃね?と考えマップチップを作って配置してみたわけだ。 こんな感じで1つ作ってみたわけだが、後ろのタイルが隠れて見えな…

XNA的なゲーム開発

なにが言いたいかっていうと、ゲームからゲームフレームを分離して使いまわそうってやつ。 XNAでの開発での問題点として、XBOX的な縛りがあって、俺的にはPCでの運用を考えてるのだけど、コントローラはプレステ方式が好きなわけだ。 かといって、…

複数オブジェクトの同時処理

複数のオブジェクトが互いに影響しあっている状況で同時に処理をしなければならない。 まぁ、それなりにあるシチュエーションだな。 厳密に行おうとするとCPUが1つしかない環境下では当然無理なわけだが、ごまかす手段はいくつかありそうなんで、思いついた…