C# OpenTKで3Dカーレースっぽいゲームをつくります。前回のC# OpenTKでUnityのアセットは使えるのか?で取得したデータで自動車をつくります。

まずは基本的な部分を示します。

視体積の設定や視界の設定をおこなうメソッドを作成します。今回は自機(というか自分の車)の後ろをカメラが追うような描写をします。自車の方向に進行よっては逆光になることもあるので、そうはならないように光源を設定します。

では車を描画するためのクラスと関連するクラスを示します。

まず車を描画するために取得した座標を格納するクラスを示します。これは C# OpenTKでUnityのアセットは使えるのか? の最後の部分ででてきたものと同じです。

次にCarクラスの基底クラスであるCharctorクラスを示します。

次にCarクラスを示します。carDataをもとに描画するときに座標系がちがっているので修正の処理をいれています。フィールド変数Rotateが0のときは車はX軸方向を向いています。

CarDataクラスのなかにデータを格納するのが自作メソッドForm1.InitCarsData()です。C# OpenTKでUnityのアセットは使えるのか?で保存したXMLファイルを読み取ってフィールド変数のなかに格納します。

そしてファイルの読み取りが完了し、GlControlがロードされたら、これをもとにCarオブジェクトを生成します。

では自車を動かしてみましょう。ハンドル操作は←キーと→キーで、アクセルは↑キー、ブレーキは↓キーです。バックはできない仕様になっています。