必要なクラス(Terrain class)を作っていく

🛠 ステップ⑤： Terrain クラスを作ろう！ ゲームに出てくる「地面」や「山」をつくるために、 Terrain （テレイン）という 地形クラス を作ります。 これは「 地形を作ったり、描いたり、調べたりする便利な道具 」だと思ってください。 🧱 1. 必要な情報（メンバ変数） 地形を作るには、「点」や「三角形」、サイズなどの情報が必要です。 class Terrain {

public:

 Terrain() = default; // 何も設定しない初期状態のコンストラクタ

 void MakeTerrain(); // ← ランダムに地形を作る関数

 void Update(); // 地形の更新（今は何もしない）

 void Draw(Transform& t); // 地形を画面に描く関数

 void SetParams(const TerrainParams& params) { params_ = params; }

private:

 std::vector<Vertex> vertices_; // 点のリスト

 std::vector<uint32_t> indices_; // 三角形のリスト

 ID3D11Buffer* vertexBuffer_ = nullptr; // GPU用の頂点バッファ

 ID3D11Buffer* indexBuffer_ = nullptr; // GPU用のインデックスバッファ

 ID3D11Buffer* globalCB = nullptr; // 定数バッファ（カメラなどの情報）

 TerrainParams params_; // 地形のサイズ・スケール情報など

 void CreateBuffers(); // GPUにデータを送る関数

 void ComputeNormals(); // 法線（光の方向）を計算する関数

}; 🔧 2. 地形の設定データ TerrainParams params_ に入れるデータはこういう構造になっています： struct TerrainParams {

 int width = 128; // 横マス数（点の数）

 int height = 128; // 縦マス数

 float scale = 1.0f; // 1マスの大きさ（メートル）

 float heightScale = 10.0f; // 高さの最大値

}; 📌 3. Vertex とは？ 点（頂点）は Vertex という名前で、こう定義されています： struct Vertex {

 DirectX::XMFLOAT3 position; // 座標（どこにあるか）

 DirectX::XMFLOAT3 normal; // 法線（光の方向）

 DirectX::XMFLOAT2 uv; // UV（テクスチャの貼る場所）

}; 💡 補足：DirectXに必要なもの 地形を表示するには、DirectXの以下の機能を使います： 頂点バッファ（点の情報） インデックスバッファ（三角形のつなぎ方） テクスチャ（見た目の模様） 定数バッファ（カメラやライトの情報） ✅ ここまでのまとめ 名前 役割 Terrain 地形を作る・表示するクラス Vertex 1つの点の情報（位置など） TerrainParams 地形全体のサイズやスケール vertices_ 点の集まり indices_ 三角形のつなぎ方 Draw() 地形を画面に表示する関数