Skip to content

第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.cppCSV初期化、開始位置と描画の接続先
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++のコードを書き換えなくても配置を変更できます。

授業の進め方 ​

動作確認 ​

  • CSVの行・列どおりにレンガと苔石が描画される
  • CSVから取得した位置にプレイヤーとゴールが表示される
  • 不正なCSVの原因をメッセージから判断して直せる
  • 実験後は正常なCSVへ戻し、再実行して確認できる

ゲームプログラミング実践