CarProj新シリーズのもとをアップしました

いままでのプロジェクトでは、継ぎ足しプロジェクトになっていました

特に、モデルの取り扱いは、扱いにくかったです。

プレーヤーですと

Player g_player;

CModel g_playermodel;

宣言がふたつ必要でした、これを今回は統一しています。

CPlayerをCObjectに格上げしました。

オブジェクトクラスですね、

今までは、たとえて言うと猫クラスCNekoから

mike、potiなど、種類を超えて使っていました。

猫、犬、ポチの家など、という感じです、

そのおかげで、いろんな弊害がでました

初期化が共有され、相互に影響しあいました

そのおかげで、初期化の影響をとりのぞくために

あちこちで、たとえば、OBBの更新とかがでてきて

プログラムがややこしくなってました。

今回そういう弊害をできる限り取り除きました。

特にOBB(BOX)ですね

ModelData.cppのOBB作成では、

サブメッシュ(部品)毎の、OBB(BOX)をとっています

CModel.cppでは、

一番おおきなOBBをもとめています

BigOBBです、通常はこちらを使います。

細かいあたりを取りたい場合は

たくさんのOBBを使ってあたりをとります

 

また、今回Player,JumpRamp,Castleたちを独立させました

初期化で、互いに影響しあわないように

CPlayer,CJumpRamp,CCastleですね

いままでのPlayerクラスは、CObjectクラスになっています

たくさんの変数がはいっているので、関数もはいってます

ここから、個別のオブジェクトのクラスを作っています、

書く量が減って、わかりやすいです、

研究材料に使って下さい

また、Jump時のあたりの取り方も少し、余分なコーディングを

とっています

フォール用の状態遷移を扱うフラッグもあります

HitJump ()関数をみると、関数を使って

コーディングを減らしています

参考にできるところは、参考にしてみてください

とりあえず、いろいろ改良しましたので

Modeldata.cpp

CModel.cpp

3dSceneのなかのプログラム

新シリーズのもととしました

フォントもはいってますし

2Ⅾ描画もはいっています

とりあえず、アップしましたので、報告まで