- ベストアンサー
処理の速い当たり判定について[WINSOWS][C]
いつもお世話になっております。 WINDOWSプログラミングを勉強しています。 現在当たり判定について勉強しているのですが、調べてみたところいろいろなやり方があるようです。 私が今作ろうとしているのはアクションゲームなのですが、接地、ダメージ等々の当たり判定があり、毎フレームでこのような判定を繰り返すと重くなってしまうのでは、と危惧しています。 ここで質問なのですが、WINDOWSまたはCプログラムでなるべく速く処理ができる当たり判定を教えていただけないでしょうか? また、初心者向けなものをお願いします。 我儘を言って申し訳ありませんが、ご指導よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> 壁や床や敵の当たり判定は種類別にして構造体を配列にいれて判定をすればいいのですか? > だとしたら毎フレームこれらのリージョンと自機のリージョンを判定するのでしょうか? 毎フレーム判定すれば良いと思います。 大まかな判定を先にして、それにヒットすれば細かく判定するというようにすると良いですよ。 たとえば、丸形の当たり判定は先に矩形で行ってからすると言った具合です。 > スクロールするステージを作成する予定なので、床や壁は結構多くなってしまうのですが・・・ そんなものじゃないでしょうか? 2Dのアクションゲームの場合、重くなる原因は、計算よりもむしろ描画処理だと思います。
その他の回答 (3)
- postal0x02
- ベストアンサー率42% (24/57)
多分作るゲームは2Dですよね? http://ja.wikipedia.org/wiki/%E5%BD%93%E3%81%9F%E3%82%8A%E5%88%A4%E5%AE%9A http://www5f.biglobe.ne.jp/~kenmo/program/collision/2d/2d.html >毎フレームでこのような判定を繰り返すと重くなってしまうのでは 2Dゲームを今まで作ってきて、当たり判定の処理速度で困ったことは無いです。 (よほど判定回数が多くなければ)
補足
はい、初心者なのでもちろん2Dに挑戦しようと思います。 初心者意見で申し訳ないのですが、もうひとつ伺ってもいいでしょうか? 壁や床や敵の当たり判定は種類別にして構造体を配列にいれて判定をすればいいのですか? だとしたら毎フレームこれらのリージョンと自機のリージョンを判定するのでしょうか? スクロールするステージを作成する予定なので、床や壁は結構多くなってしまうのですが・・・
- masaota56
- ベストアンサー率41% (58/139)
普通に座標から計算すれば、特に重くはなりませんよ。 一度それで、Cより明らかに遅い(はず)HTAでエアーホッケーゲームを作ったことがあります。
お礼
座標計算というのはリージョンとは別なのでしょうか? 今リージョンを使ってやるつもりでいるのですが・・・
- eroermine
- ベストアンサー率18% (83/444)
当然仮想画面でやってるんですよね。
補足
ダブルバッファリングは出来たので、仮想画面でやるつもりです。
お礼
ありがとうございます。 毎フレーム「全ての」当たり判定を判定する、というのがずっと気になっていました。 とりあえずは何も考えずに作ってみようと思います。