# 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」ボタンでエディタを終了します。 変更