第15回 CSVから作るステージ
CSVに記録した配置を読み取り、レンガ・苔石・ゴールを描画します。プレイヤーの開始位置もCSVから取得します。配置を変えた結果を予想し、表示と比べて確かめます。
始める前に
座標と画像の描画、配列・ループを確認してください。CSVの読み込みと検査は実装済みです。確認したい場合は、調整できるプレイヤー表示と操作を参照してください。
前の回の受講や完成物は必須ではありません。下の開始用プロジェクトを使い、配布済みの処理と今回追加する処理を確認してから進めます。
配布プロジェクト
第15回の開始用プロジェクトを新しいフォルダへ展開し、PlatformerGame2D.sln をVisual Studio 2026で開いてください。
第14回の移動・描画に、CSV読み込みと入力検査を実装済みで加えています。最初にビルド・実行すると背景とプレイヤーが表示されます。CSVは読み込まれますが、地形の描画とCSVの開始位置への接続はこれから実装します。
この配布版では、画面より広いステージを扱う準備として、第14回の画面端の移動制限を外しています。カメラは第16回で追加するため、今回は画面内で配置を確かめます。プレイヤーが画面外へ出た場合は、再実行して開始位置へ戻してください。
配布ファイル一覧
| ファイル | 役割 |
|---|---|
Source/Platformer/Stage.h | セルの種類、地形配列、配置情報の宣言 |
Source/Platformer/Stage.cpp | 実装済みのCSV読み込み・入力検査・描画用補助関数と、未実装の Draw |
Source/Platformer/Game.cpp | CSV初期化、開始位置と描画の接続先 |
Source/Platformer/Tuning/GameTuning.h | タイルサイズなどの調整値 |
Assets/Maps/Stage01.csv | 地形・ゴール・開始位置の配置 |
この回のゴール
- CSVの行・列とセルの種類を読み取り、配置変更後の表示を予想できる
Stage::DrawとGameからの呼び出しを実装し、CSVに従う地形・ゴール・開始位置を表示できる- 実装済みの入力検査を利用し、エラーメッセージからCSVの修正箇所を判断できる
作業の準備
今回は配布済みの補助処理を使います。Stage.h と Stage.cpp は登録済みなので、新しく作成する必要はありません。
| 作業 | 対象 |
|---|---|
| 開始位置の接続 | Game::Initialize の固定位置を ResetStage() へ置き換える |
| 描画の実装と接続 | Stage::Draw を実装し、Game::Draw から呼ぶ |
| 配置変更と検査 | Assets/Maps/Stage01.csv を編集して比較する |
前回の作業フォルダは残しておきます。新しいZIPの標準状態で動作を確認してから、自分で調整した速度・表示サイズ・素材を比較して引き継いでください。手順は自分の変更を引き継ぐで確認できます。
CSVはプロジェクト直下の Assets/Maps/Stage01.csv を編集します。ビルド時に実行先へコピーされるため、編集後はビルドして再実行します。C++のコードを書き換えなくても配置を変更できます。
授業の進め方
StageCell と入力検査の役割を確認します。2 / 4CSVの読み込みと開始位置の接続配布済みのCSVローダーが保存する情報を確認し、CSVに記録した位置からプレイヤーを開始させます。3 / 4地形とゴールの描画配布済みの地形配列と描画用の補助関数を使って Stage::Draw を実装し、Gameの描画順へ接続します。4 / 4CSVのエラーの確認と修正実装済みの入力検査を使い、エラーメッセージからCSVのどこをどう直すか判断します。動作確認
- CSVの行・列どおりにレンガと苔石が描画される
- CSVから取得した位置にプレイヤーとゴールが表示される
- 不正なCSVの原因をメッセージから判断して直せる
- 実験後は正常なCSVへ戻し、再実行して確認できる