2024年12月10日
【ゲーム制作】シューティングゲーム 第59回
シューティングゲーム 第59回です。
今回は、前回デザインしたボスデザインを「.FNT」ファイル化します。
「.BMP」ファイルで、256FONTに並べたものに1FONTずつコピーして並べていきます。
1面「鯨」
動きを取るか、向きを取るかの二者択一…。
動きを取ってしまいました…。
右向きだけです…。
2面「マンボウ」
最初は「FONT数足りないかな」と、思ったのですが、ベタ塗(8×8ドット1色)が多かったので、FONT数はそれほど多くなかった…。
でも、左向きだけです…。
3面「大王イカ」
FONT数も、やっぱり「大王」。
上段と中段でFONTを分けます。
並べ終わったら、後は「BMTtoMSX」にて「.SC2」に変換して、変換したファイルを「SC2toFNT」にて「.FNT」化します。(2024年07月21日記事参照「【ゲーム制作】シミュレーションゲーム 第7回」)
最後に「FONT EDITOR」に取り込んで微調整します。
次回は、動きを考えます。
2024年12月09日
【ゲーム制作】シューティングゲーム 第58回
シューティングゲーム 第58回です。
今回は、ボスのデザインを考えます。
ボスを作る際、考えなければならないことは、SPRITEにするか、FONTにするかです。
64×64ドット1色ならばSPRITE、それ以上ならばFONTにする必要があります。
今作は大きくしたかったので、FONTでボスキャラをデザインします。
「.BMP」ファイルで適当にデザインして、「BMPtoMSX」に取り込んだ状態です。
適時「BMPtoMSX」でコンバートして確認しないと、色の滲み具合とかが判らない…。
1面は「鯨」
96×48ドット(12×6FONT)
96×40ドット(12×5FONT)
やっぱり元気に泳がせたいですよね。
2枚目の「目」が赤くない…、後で位置ずらして調整します。
2面は「マンボウ」
96×112ドット(12×14FONT)
しまった!
鯨との大きさ考えてなかった…。
大きすぎてあまり動けない…。
3面は「大王イカ」
192×96ドット(24×12ドット)
動きません。…と言うか、動かせません。
む…、左目が潰れちゃってる…。
こんなとこですかね?
次回は、「.FNT」ファイルに変換します。
2024年12月08日
【ゲーム制作】シューティングゲーム 第57回
2024年12月07日
【ゲーム制作】シューティングゲーム 第56回
シューティングゲーム 第56回です。
今回も、敵初期値設定を組んでいきます。
C最後は、引数が速度のもの。
「直進」と、「斜め直進」がこれを利用します。
「直進」は引数で1〜3を指定する事で、3段階の速度指定が可能です。
「斜め直進」は、もっと早いのが必要と考え、1〜8を指定する事で8段階まで対応します。
さらに「斜め直進」は、X座標全域から出現するものと、画面を左右に分割しプレイヤーがいない側から出現する2パターンを用意します。
以上で、ボスを除く敵ロジック完了です。
敵のパターン作成からここまで、もの凄い時間が掛かってしまいました…。
実質、ブログの日数の倍はかかってるんじゃないかな…。
シューティングゲーム開始前に溜めた記事を結構吐き出してしまいました。
次回は、ここまでの一通りのデバッグを行います。
2024年12月06日
【ゲーム制作】シューティングゲーム 第55回
2024年12月05日
【ゲーム制作】シューティングゲーム 第54回
シューティングゲーム 第54回です。
今回は、敵初期値設定を組んでいきます。
敵初期値設定では、敵出現データから引き渡された「編隊avに応じた初期値データを読み込んで、敵変数に設定します。
同じく引き渡された「引数」によって動作が異なるので、引数の種類ごとに分けて組んでいきます。
今作では、引数には次の種類があります。
引数 | 主なパターン | |
@ | なし | 「16方向弾」 |
A | 隊列数 | 「円移動」「波状」「半円移動」 |
B | X座標 | 「スクロールに合わせ直進」 |
C | 速度 | 「直進」「斜め直進」 |
@まずは、引数がないもの。
ループ回数を強制的に「1」として、初期値データそのままを初期値として敵変数に設定します。
A次に引数が隊列数のもの。
引数分ループして、敵データに初期値を設定します。
この時、1ループ毎に待機カウンタをアップして隊列移動するように設定します。
次回も、敵初期値設定の続きを組んでいきます。
2024年12月04日
【ゲーム制作】シューティングゲーム 第53回
シューティングゲーム 第53回です。
今回も、敵出現設定を組んでいきます。
前回、テスト用敵出現データを用意しました。
どれだけスクロールしたかをカウントするために、「距離カウンタ」を用意します。
1スクロール(8ドット)する毎に距離カウンタを+1していき(520行〜550行)、その距離に応じた敵出現データを読み込み、敵を出現させます。
「編隊a{引数」を読み込み、「編隊avと「引数」に分離して敵初期値設定へ処理を移します。
最後、共通設定でプレイヤーのX座標が中央より右サイドなら「左右反転フラグ」に「1」を設定します。(760行〜780行)
この時、「直進」など「左右反転」の必要のない「編隊avは、「左右反転フラグ」に強制的に「0」が設定されるよう、飛び先を指定します。
次回は、敵初期値設定を組んでいきます。
2024年12月03日
【ゲーム制作】シューティングゲーム 第52回
シューティングゲーム 第52回です。
今回は、敵出現設定を組んでいきます。
敵出現設定とは、敵出現データ(スクロールシューティングで言うなら、「マップのこの地点でこの敵が出現する」スケジュール表のようなもの。)を読み込んで、スケジュール通りに指定の敵を出現させる設定です。
スクロールシューティングのように面データがあれば、面データ内に組み入れて設定できますが、今作はマップが存在しません。
よって、別途敵出現データを用意します。
データとして設定するのは、前回設定した編隊a{引数。
「マップのこの地点で円移動キャラクタが8匹隊列組んで出現!」を設定します。
今作は、1スクロール(8ドット)当たり、1データ(1バイト)。
1スクロールに、1つの編隊b出現させます。
もし、同じタイミングで別々の編隊b同時出現させたければ、2バイトにするか、そういった編隊b組む事で対応可能です。
データ1バイトの形式は下図のとおり。
1バイトを上位4ビットと下位4ビットに分け、それぞれ0〜15まで指定可能です。
上位4ビットを編隊aA下位4ビットを引数とします。
例えば編隊2の敵を6機出現を設定したければ、&H26と言った感じです。
もし、引数指定にX座標(256ドット)など、15を超えた値が必要な時は、引数に16掛ける(15×16=240、キャラクタが16ドットなので240が右端)など、多少工夫する事で、対応可能です。
それでも、どう工夫しても編隊aA若しくは引数が16を超える場合は、1データ2バイトにせざるを得ませんね。
1面の長さは、今作では1面当り256バイトとします。
2分から3分くらいかな?(標準がどのくらいか判りませんが…。)
256FONT分スクロールしたらボスとなります。
で、今は敵出現データにテスト用に全編隊b設定しておきます。
(&H00は「何も出現しない」です。)
次回は、敵出現設定の続きを組んでいきます。
2024年12月02日
【ゲーム制作】シューティングゲーム 第51回
シューティングゲーム 第51回です。
今回はちょっと一息、ゲームの進捗管理をします。
ロールプレイングゲームの時にやって以来です。
これまでは進捗管理しなければならないほど工程がなかったので必要なかったのですが、シューティングゲームはそれなりにあるので必要です。
【ゲーム製作進捗】
工程 | 作業 | 進捗 |
1 | ゲーム設計(規模、詳細、メモリマップ) | 完了 |
2 | シナリオ作成 | 完了 |
3 | オープニグ作成 | 完了 |
4 | タイトル作成 | 完了 |
5 | マップ設計(1画面) | 完了 |
6 | FONTデザイン | 完了 |
7 | SPRITEデザイン | 完了 |
8 | 疑似スクロール | 完了 |
9 | プレイヤー移動 | 完了 |
10 | プレイヤー弾発射 | 完了 |
11 | 敵表示 | 完了 |
12 | 敵の弾狙撃設定 | 完了 |
13 | 敵の弾移動 | 完了 |
14 | BGM作曲(5曲) | 完了 |
15 | BGM演奏 | 完了 |
16 | SPRITEシャッフル | 完了 |
17 | 衝突判定(プレイヤーVS敵の弾) | 完了 |
18 | 衝突判定(敵VSプレイヤーの弾) | 完了 |
19 | 衝突判定(敵VSプレイヤー) | 完了 |
20 | 衝突判定(敵・敵の弾VSバリア) | 完了 |
21 | 敵移動(LABO4種) | 完了 |
22 | 敵移動(LABO亜種3種) | 完了 |
23 | 敵移動(新種2種) | 完了 |
24 | 敵移動(直進系3種) | 完了 |
25 | 敵移動(16方向弾) | 完了 |
26 | パワーアップ | 完了 |
27 | 敵出現設定 | 未 |
28 | 敵出現データ作成 | 未 |
29 | 敵編隊pン定 | 未 |
30 | 敵編隊cfータ作成 | 未 |
31 | 効果音作成 | 未 |
32 | エンディング | 未 |
33 | ボスデザイン | 未 |
34 | 敵1面ボス | 未 |
35 | 敵2面ボス | 未 |
36 | 敵3面ボス | 未 |
うーん、全体で70%と言ったところでしょうか…。
残りの内容的に、簡単にはいかなさそう…。
しかし、次回作を考えているので、年内には終わらせます!
次回は、敵出現設定を組んでいきます。
2024年12月01日
細かく修正㉞
「ゲーム制作」の「製作メニュー」の「海底大戦争」欄の各回へのリンクを追加。
「ゲーム制作」の「シューティングゲーム」の前後回へのリンクが全て切れていたので修正。
それ以外は、画像の貼り直しや、記事の誤記の修正程度です。