2024年10月21日
【ゲーム制作】シューティングゲーム 第13回
シューティングゲーム 第13回です。
今回は、前回作成したサブルーチンのデバッグです。
いくつかのサブルーチンを使い、プログラムを実行してみます。
まず、ごっそりアドレス入替した「走査線割り込み処理」部分に関しては、アドレスエラーで相当数飛びました…。
やっと動いた時には、ちょっと涙出そうなくらいでした…。
サブルーチン群も若干アドレス入替ありましたが、こちらはおおむねエラーなし。
ゲーム画面が表示され、BGMが流れています。
仮に配置した敵で「SPRITE水平方向5枚以上表示」処理の動作の確認もできました。
それ以外のサブルーチン(16進数→10進数変換や、スコア表示等)も可能な限りチェック。
良い感じです。
一通りのデバック終わったので、次回はBGMを作曲します。
2024年10月20日
【ゲーム制作】シューティングゲーム 第12回
シューティングゲーム 第12回です。
今回は一通りのサブルーチンを用意します。
用意するサブルーチンは、
・SPRITE設定
・FONT設定
・乱数
・16進数→10進数変換
・画面上全SPRITE消去
・タイトル表示
・VRAMアドレス算出
・初期画面表示
・8BIT掛け算
・16BIT割り算
・残機数表示
・スコア表示
等々…。
他にも要りそうですが、「シューティングゲーム」久しぶりすぎて何が必要だったか思い出せないので、都度追加していきます。
前回作った旧「走査線割り込み処理」のExcelに、サブルーチン群を追加。
「.BAS」にコンバートして、「.BIN」ファイル作成。
一気に組み上げましたので、ちゃんと動作するかは不明。
次回は今回組んだサブルーチンの「デバッグ」作業をします。
2024年10月19日
【ゲーム制作】シューティングゲーム 第11回
シューティングゲーム 第11回です。
今回は、「走査線割込み処理」を組んでいきます。
「第4回 プログラムの割り振り」で仕訳けた通り、旧「走査線割込み処理」(BINSET4.BAS)もメインプログラムの中のサブルーチンとして組み込んでいきます。
よって「BINSET4.BAS」はなくします。
「BINSET4.BAS」をルーチン単位で「BINSET.BAS」に挿入していきます。
Excelって便利!
うーん、飛び先指定を全部直さないといけなので、相当面倒…。
走査線割り込み処理内のほぼすべてのルーチンのアドレスが変わったからなぁ…。
ついでにExcelで「メインプログラム」部と「走査線割り込み処理」部の色を変えて分かり易くしていきます。
ほんと、Excelって便利!
とりあえずここまででExcelから「.BAS」にコンバートして、「.BIN」ファイル作成。
デバッグはその他サブルーチンとまとめて、後日します。
走査線割り込み前後処理。
SPRITE水平方向5枚以上表示処理。
BGM演奏ルーチン(通常版)。
次回は、サブルーチン集を組んでいきます。
2024年10月18日
細かく修正㉚
「ゲーム制作」の「製作メニュー」のグローバルメニューを下表のように修正。
新 | 旧 |
【 戻らずの迷宮 〜The Dungeon of NoReturn〜 】 | 新作1 |
【 無人島からの脱出 〜Escape From a DesertIsland〜 】 | 新作2 |
【 MMLコンパイラ(通常版) 】 | ツール |
【 ハンド君の迷宮大冒険 】 | 新作3 |
【 じゃんけんブロック 】 | 新作4 |
【 神経衰弱 】 | 新作5 |
【 スライムマスター 】 | 新作6 |
「ゲーム制作」の「製作メニュー」に「【 海底大戦争 】」の欄を設け、各回へのリンクを追加。
「ゲーム制作」の「シューティングゲーム」の前後回へのリンクが全て切れていたので修正。
「Laboratory」のテーマメニューに新しくテーマ29「メッセージを1ドットスムーズスクロールで流したい」追加。
「Laboratory」テーマメニューの公開分記事へのリンク追加。
・Laboratoryテーマ16「波状攻撃してくる敵を作りたい その@」
・Laboratoryテーマ16「波状攻撃してくる敵を作りたい そのA」
・Laboratoryテーマ17「放物線を描いて飛来する敵を作りたい その@」
・Laboratoryテーマ17「放物線を描いて飛来する敵を作りたい そのA」
・Laboratoryテーマ18「回転する敵を作りたい その@」
・Laboratoryテーマ18「回転する敵を作りたい そのA」
・Laboratoryテーマ18「回転する敵を作りたい そのB」
・Laboratoryテーマ19「半円移動する敵を作りたい その@」
・Laboratoryテーマ19「半円移動する敵を作りたい そのA」
・Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい その@」
・Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい そのA」
・Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい そのB」
・Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい そのC」
それ以外は、画像の貼り直しや、記事の誤記の修正程度です。
2024年10月17日
【ゲーム制作】シューティングゲーム 第10回
シューティングゲーム 第10回です。
今回は、面データを作成します。
面データの作成には、「MAP8 EDITOR」を利用してもいいのですが、同じパターンをポチポチ入力していくのが面倒なので、独自プログラムを用います。
4FONT×4FONTの塊(ブロック)を3つ作って、それを配置していくだけの簡単なプログラムです。
起動すると、左崖を左端に縦に6ブロック、右崖を右端に縦に6ブロック、地面を左崖の右隣りから右崖まで横に6ブロック、縦に6ブロック設定します。
設定後、ちゃんとマップデータが出来ているか「MAP8 EDITOR」でチェックします。
問題なく設定できています。
次回は、「走査線割込み処理」を組んでいきます。
2024年10月16日
【ゲーム制作】シューティングゲーム 第9回
シューティングゲーム 第9回です。
今回は、FONTキャラクタを作成します。
前回描いた「.BMP」背景画像を、「シミュレーションゲーム」の時にやった取込み方でFONTファイル化します。(2024年07月21日記事参照「【ゲーム制作】シミュレーションゲーム 第7回」)
このように並び替え「BMPtoMSX」で「.SC2」化し、更に「SC2toFNT」でFONTファイル化します。
取り込んだFONTデータを「FONT EDITOR」で加工・修正します。
今作では、1面、2面、3面でFONTデータを分けます。
ほぼ、背景データです。
今作では、フリーエリアに描画されている4FONT×4FONTの塊3つを、上から下に1ドットシフトします。
背景が1ドットスクロールしているので、8ドット単位でしか動けないフォントキャラは使い辛いので、FONTは背景のみになるかな。
文字パターンは試作ディスクに入っていたものを、そのまま使いました。
次回は面データを作成します。
2024年10月15日
【ゲーム制作】シューティングゲーム 第8回
2024年10月14日
【ゲーム制作】シューティングゲーム 第7回
2024年10月13日
【ゲーム制作】シューティングゲーム 第6回
シューティングゲーム 第6回です。
今回はイメージディスクを作成します。
今作もマシン語設定プログラム(「BINSET.BAS」)は、Excelからコンバートするので要りません。
今作はアクションゲーム同様に、自機残機の概念があるので、アクションゲームのBASIC(ACT.BAS)を持って来て改造する事にします。(2024年04月24日記事参照「【ゲーム制作】面クリア型アクションゲーム 第24回」)
他には「AUTOEXEC.BAS」と、初期値を作成するための「BINSETIN.BAS」と、残機ループが必要なので「BINSETI2.BAS」も入れておきます。
残りは、エディター使って新たに作成します。
4ファイルだけでイメージディスク作成。
次回は、SPRITEキャラクタを作成します。
2024年10月12日
【ゲーム制作】シューティングゲーム 第5回
シューティングゲーム 第5回です。
今回はメモリマップを作成します。
前回設計した内容に沿って必要なメモリ振りをします。
アドレス | データ名 | 備考 |
A000〜A2FF | 面データ(横32×縦24=768バイト) | 768バイト |
B000〜B9FF | 敵データ(出現位置・移動パターンデータ) | 2,560バイト |
BA00〜BB5F | 効果音データ | 352バイト |
BB60〜BCFF | 敵・敵弾変数(敵10、敵弾16、26×16バイト=416バイト) | 416バイト |
BD00〜BFFF | 疑似スクロール用FONTデータ(4FONT×4FONT×8バイト×3ブロック×2(パターン・カラー)=768バイト | 768バイト |
C000〜D7FF | マシン語エリア(走査線割り込み処理含む) | 6,144バイト |
D800〜D9FF | BGMデータエリア | 512バイト |
E000〜E0FF | 変数エリア | 256バイト |
今作から、走査線割り込み処理を別プログラム化せず、マシン語プログラムの中に組み込みます。
スクロールシューティングの場合は、面データが必要なのでその分のメモリを取られますが、今作は疑似スクロールなので、面データで必要なのは敵の出現位置と行動パターンデータくらい。
あと気になるのは各面、ボスのプログラムが大きくなるようでしたら、&HA000~&HAFFFを使います。
「ロールプレイングゲーム」以来の充実ぶりですね。
次回は、イメージディスクを作成します。