Skip to content

第13回 新作プロジェクトとゲームの土台

ここからは、左右へ進み、ジャンプで足場を渡るプラットフォーマーを作ります。シューティングで使った入力・更新・描画の考え方を、新しい作品へ応用します。

配布プロジェクト

第13回の開始用プロジェクトを別のフォルダへ展開し、PlatformerGame2D.sln をVisual Studio 2026で開きます。DXライブラリの設定と素材を利用して、背景とプレイヤーの静止表示を作成します。

配布ファイル一覧
ファイル役割
Source/Config/ApplicationConfig.h画面サイズと更新間隔の設定
Source/main.cppDXライブラリの初期化と終了
Assets/Images使用する画像素材
Assets/Maps後の回で使用するマップデータ
Assets/Sounds後の回で使用する音声素材

この回のゴール

640×480の画面に背景とプレイヤーを表示し、Escape で終了できる状態を作ります。Player クラスはこの回から用意し、次回以降に移動・重力・ジャンプを順に追加していきます。

今回のポイント

Game クラスが入力と描画の順序を統括し、Player クラスが自身の位置を保持します。ImageManager は画像の読み込みと解放を管理します。画像の幅と高さも保持し、第20回のスプライト切り出しに利用します。

本プロジェクトの入力判定メソッドは、押し続けが IsHeld()、押した瞬間が IsPressed() です。シューティング教材の IsDown() が本教材の IsHeld() に対応します。操作の種類を表す列挙型は Input::Action から Input::Key へ名称が変わりますが、入力状態を Game から Player へ渡す設計思想は共通です。

作業の準備

第13回は配布された初期状態から始めます。今回の新規ファイルは、本文を進めながら追加します。ファイルの登録方法や変更の引き継ぎ手順は、配布ファイルの手順で確認できます。

作業対象
新規作成Source/DxGame/Rect.hSource/DxGame/Vector2.hSource/Platformer/Game.cppSource/Platformer/Game.hSource/Platformer/ImageManager.cppSource/Platformer/ImageManager.hSource/Platformer/Input.cppSource/Platformer/Input.hSource/Platformer/Player.cppSource/Platformer/Player.h
既存ファイルへ追記・編集Source/main.cpp
重点的に実装・確認する処理Game::InitializeGame::MainLoopGame::Draw

ヘッダーの宣言、#include、登録テーブル、エラー処理などは、最終ステップの参考実装を参照できます。重点関数は各ステップで処理の流れを確認しながら記述します。関数を変更する際は、宣言・定義・呼び出し元の整合性を保ちます。

今回は ApplicationConfig.h の起動設定を利用します。GameTuning.h は第14回で追加します。素材はプロジェクト直下の Assets/ フォルダを編集します。

第13回の目次

動作確認

  • 背景の手前にプレイヤーが表示される
  • Escape でゲームが正常に終了する
  • 入力、描画、画面反転、待機の処理順序を説明できる

次回は、このPlayerに左右移動と、表示範囲・命中範囲を加えます。

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