Skip to content

第01回 プレイヤーの表示と操作

第01回から第12回まで、縦スクロールシューティングゲームを段階的に制作します。 プレイヤーを操作して弾を撃ち、画面上端から現れる敵と敵弾を避けながら得点を重ね、クリアまたはゲームオーバーまで遊べるゲームへ発展させます。

配布プロジェクト

第01回のプロジェクトをダウンロード

第01回の配布プロジェクトは、DXライブラリの初期化、入力、画像管理、ゲームループを実装済みです。

配布ファイル一覧
ファイル役割
Source/Shooting/Game.cppゲームループ
Source/Shooting/Player.hプレイヤーの宣言
Source/Shooting/Player.cppプレイヤーの表示、入力方向、位置更新
Source/Shooting/Tuning/GameTuning.hゲームの調整値
Source/Shooting/Input.hシューティング内の操作を表すActionの定義
Assets/Images/Player.pngプレイヤーの画像

この回のゴール

配布プロジェクトは実行しても黒いウィンドウが表示されるだけです。
ここにシューティングゲームに必要な機能を追加していきます。
授業終了時にはプレイヤーが表示され、矢印キーまたはWASDで移動できるようになります。

  • プレイヤー画像を開始位置へ表示し、キー入力で移動させる
  • Game::Run()に実装された基本的なゲームループの仕組みを理解する
  • MoveSpeedを変更し、プレイヤーの移動速度を調整する
操作結果
左右キーまたはA・Dプレイヤーが左右へ移動する
上下キーまたはW・Sプレイヤーが上下へ移動する
Escapeゲームを終了する

今回のポイント

ゲームループの順序を確認し、プレイヤーの表示と操作をPlayerの責任として追加します。

今回実装する範囲

区分内容
自分で実装する処理Player::Reset()Player::Draw()、入力方向の作成、positionの更新
実装済みの機能を利用する処理ImageManagerによる画像の読み込みと描画機能、表示矩形の計算、斜め移動の調整、画面内への移動制限

第01回ではプレイヤーの表示と操作を完成させます。
画像の読み込みや細かな制御は、後の回で詳しく扱います。

今回利用する機能

この回で利用する機能のうち

  • 命中範囲と移動範囲の画面内制限は第04回
  • ベクトルの大きさと正規化は第05回
  • 画像リソースの管理は第08回

で詳しく扱います。

今回の完成例

まず自分の実装を動かしてから、第02回の配布プロジェクトを完成例として比較します。

確認するファイル確認する内容
Player.cppプレイヤーの初期化、表示、入力方向、位置更新
Game.cppゲームループからPlayerへ更新と描画を依頼する流れ