/rc2024sp_team1

RubyCamp2024 Spring Team1

Primary LanguageRubyMIT LicenseMIT

# Ruby合宿2024春・サンプルゲーム

本サンプルは、Ruby合宿2024春におけるテーマである「2Dシューティングゲーム」の参考資料として作成したものです。
2Dシューティングゲームとして必要となる最低限の基本的要素のみを実装しています。

マップは強制縦スクロール型で、横方向にもスクロール可能となっています。
マップの構造は、32x32ピクセルの「マップチップ」を最小単位としたタイル状の構造になっており、「map_data」ディレクトリにサンプルマップデータを格納しています。
マップデータは整数値でマップチップ番号を示すCSV形式となっており、このマップデータから一定のサイズの領域を画面上に描画してゲームの舞台を表現しています。

## プレイ方法

本サンプルのプレイ方法は、本ファイルと同じ階層をカレントディレクトリとして、以下のコマンドで実行できます。

```
ruby main.rb
```

最初はタイトル画面が表示されるので、スペースキーでゲーム本編に遷移します。
左右カーソルキーで自機を操作し、スペースキーで弾を発射します。
敵キャラに弾が当たれば得点が増え、敵キャラの弾に当たれば得点が減ります。
クリア条件は設定しておらず、エンターキーを押下すれば次のステージに遷移します。
ステージ2は、最小限のステージ構造のサンプルとして用意しているため、自機も敵キャラも表示せず、マップのみを表示しています。
こちらもエンターキーで場面遷移します。
最後にエンディング画面が表示されて終了となります。

## マップエディタについて

このようなマップデータは手書きで作成するのは大変なので、本サンプルでは「map_editor」ディレクトリ以下にマップデータを編集できるエディタを用意しています。
「map_editor」ディレクトリをカレントディレクトリとして、以下のコマンドで実行できます。

```
ruby main.rb 《マップ名》
```

《マップ名》部分には、「sample_game\map_data」に含まれるデータファイルのファイル名部分を指定します。
例えば、「stage1.map」を編集するのであれば、

```
ruby main.rb stage1
```

のように実行します。
※ 拡張子は省略します。

編集画面が表示されますので、画面右側のマップチップテーブルから置きたいマップチップをクリックして選択し、マップ上をマウスでドラッグすると当該チップを配置できます。
上下左右のカーソルキーでマップ領域はスクロール可能です。

編集が終わったら「SAVE」ボタンを押下することで保存できます。
「EXIT」ボタンでエディタを終了します。
変更