2008-12-01から1ヶ月間の記事一覧

衝突判定できた

たいしたことない部分のはずなのだが、いろいろとパターンを網羅していると結構時間がかかってしまった。 ところでゲームの1フレームごとのミクロな処理って結構細かいところが気になったりする。 例えばこの図のように。 バーでボールを跳ね返す場合だが、…

衝突判定実装中2

まだ未完成。 1フレームで横辺と縦辺に両方交差する場合(ブロックの角にちょっと交差するケース)だと先に交差してる方の辺で反射方向を決めないといけない。交点は求められるから、ボールの始点から交点までの距離で判定すればいいか。 あとバーの中央当て…

衝突判定実装中

1フレーム前の座標を保存して線分交差判定で実装したけど、時間なくてあまり進まず。貫通問題とかまだ残ってて不完全。 ところで今はz座標は0固定を前提にしてるので、見た目が3Dなだけで何も3Dっぽい処理とかしてないのよね。球と直方体の衝突判定とかちゃ…

衝突判定仮実装

未完成だがオブジェクト同士の衝突判定を実装。 とりあえずボールがバーやブロックに当たると跳ね返って、ブロックは消えるようにした。 バーの太さの領域にボールが入るとy軸速度を反転するようにしているだけなので、1フレームで領域から抜け出せないと振…

ここからが本番

いよいよゲームに必須の処理である衝突判定に入る。 今まではメインループのあたりにバーやボールの座標の計算なんかをすべて書いていたが、流石に長くなってきたのでそれぞれのオブジェクトをクラスにまとめる。すると、オブジェクトの座標などはメンバ変数…

ジョイスティック入力が・・・

バーを動かすためにジョイスティック入力の実装。 前書いたコードをそのまま移して、動くには動いたんだが・・・バックグラウンドから戻したときに動かなくなる。デバイスロストってやつだ。 前はちゃんと戻せてたのに、どっか抜けたかな。 ちょこちょこコー…

ウィンドウプロシージャとは・・・

昨日のバグについて説明しなおすと、デバイスロストを復旧するようにデバイスのAcquireDeviceメソッドを呼んでもデバイスが戻らないだとか、それどころか落ちるという問題。 原因としては、AcquireDeviceを呼ぶ場所がウィンドウプロシージャでWM_ACTIVATEを…