2024年04月13日
【ゲーム制作】面クリア型アクションゲーム 第13回
面クリア型アクションゲーム 第13回です。
今回は、「ハンド君」を動けるようにします。
プレイヤーキャラクタをジョイスティックで動かすのって、久しぶりすぎてちょっと感動。
既に作ってあるサブルーチン集のおかげで、特に詰まる事もなく動かすことが出来ました。
ついでに、ドットを取った時に、効果音を鳴らし、スコアアップ、ドットの削除まで組みました。
…ただ!
ハンド君の向こうが透けててキャラクタが見難い!
MSX1の1色SPRITEゲームあるあるですね…。
解消のために背景を黒一色にするとか…。
どうしようか…。
目・足と同じ色で縁取ると、おかしくなるし…。
次回、対策を講じます。
2024年04月12日
【ゲーム制作】面クリア型アクションゲーム 第12回
面クリア型アクションゲーム 第12回です。
今回は、前回「ハンド君」を表示した際、感じた違和感を解消します。
「ハンド君」は、じゃんけんキャラクタの前の面に、目と足のキャラクタを表示しています。
よって、「水平ライン4枚(MSX2は8枚)を超えてSPRITEを表示させたい」処理がしてあると、2枚重ね1キャラクタ内で前後が入れ替わってチラつきます。
動画でないと、どういう感じか掴めませんよね。
画面右下の「ハンド君」に注目。
これは、敵キャラクタも同じ。
と、言う訳で、「水平ライン4枚(MSX2は8枚)を超えてSPRITEを表示させたい」処理を32キャラクタ×4バイトではなく、16キャラクタ×8バイトにするように変更します。
要は簡単、1キャラクタ4バイトずつ転送かけていたのを、1キャラクタ8バイトずつの転送にすればいいのです。
四角で囲った部分は追加(一括転送にした方がいい)、丸で囲った部分は変更です。
こうすることで2枚重ねのキャラクタを1セットとして点滅させることが出来るようになります。
これで1セット内での前後入替は無くなります。
次回は、いよいよ「ハンド君」を動かせるようにします。
2024年04月11日
「BlueMSX」で音が出なくなった!?
今日、プログラムのデバッグ中、突然、音が鳴らなくなりました!
なぜ?
とりあえず「BlueMSX」再起動。
…駄目。
パソコン再起動後、「BlueMSX」起動。
…駄目。
「BlueMSX」アンインストール後、再インストールし起動。
…駄目。
「BlueMSX」アンインストール後、パソコン再起動、再インストールし起動。
…駄目。
駄目だ、直らない…。
突然鳴らなくなったので、サウンド設定変更していません。
「WebMSX」でイメージディスク起動すると音鳴るので、プログラムが悪い訳でもなさそう…。
…なぜ?
原因不明です…。
ミキサーは音鳴らしてるみたいなので、Windowsの方なのかな?
Windowsと「BlueMSX」って何かで紐付けられてる?
うーん…、このままでは音のテストが出来ない…。
取り敢えず、しばらくはプログラミングなのでこのまま続けます。
BGMや、効果音作成時にこのままだったらどうしよう…。
どなたか対応策ご存じでしたらご教授お願いします。
なぜ?
とりあえず「BlueMSX」再起動。
…駄目。
パソコン再起動後、「BlueMSX」起動。
…駄目。
「BlueMSX」アンインストール後、再インストールし起動。
…駄目。
「BlueMSX」アンインストール後、パソコン再起動、再インストールし起動。
…駄目。
駄目だ、直らない…。
突然鳴らなくなったので、サウンド設定変更していません。
「WebMSX」でイメージディスク起動すると音鳴るので、プログラムが悪い訳でもなさそう…。
…なぜ?
原因不明です…。
ミキサーは音鳴らしてるみたいなので、Windowsの方なのかな?
Windowsと「BlueMSX」って何かで紐付けられてる?
うーん…、このままでは音のテストが出来ない…。
取り敢えず、しばらくはプログラミングなのでこのまま続けます。
BGMや、効果音作成時にこのままだったらどうしよう…。
どなたか対応策ご存じでしたらご教授お願いします。
2024年04月10日
【ゲーム制作】面クリア型アクションゲーム 第11回
面クリア型アクションゲーム 第11回です。
今回は、前回作成したサブルーチンのデバッグです。
いくつかのサブルーチンを使い、ゲーム画面を表示してみます。
良い感じですね。
バグ無し一発OKです。
続いて、アドレス計算サブルーチンを使い、指定した座標からアドレスを算出してその位置に「ハンド君」を表示したり、MAPキャラクタを別のキャラクタに変更したりしてみました。
特に問題なし…、
…ん?
なんか、「ハンド君」が1ドット下に表示されている…。
バグか?
試しにBASICのPUTSPRITE命令で、表示してみる。
やっぱりズレてる!
あれー? FONTとSPRITEの座標にそんなズレあったっけ?
私が忘れてるだけ?
まぁ、ズレているものは仕方ないので1ドット上に表示させます。
他のサブルーチンもバグ無し一発OKでした。
我ながら凄い!
一通りのデバック終わったので、次回は「ハンド君」表示の違和感を解消します。
2024年04月09日
【ゲーム制作】面クリア型アクションゲーム 第10回
面クリア型アクションゲーム 第10回です。
今回は一通りのサブルーチンを用意します。
考えつくサブルーチンは、
・乱数
・FONT設定
・SPRITE設定
・MAP表示
・16進数→10進数変換
・スコア表示
・面数表示
・残匹表示
・MAPアドレス算出
・VRAMアドレス算出
位ですかね?
特に、
・MAPアドレス算出
・VRAMアドレス算出
は、敵ルーチンの時も使えるようにしないといけません。
こちらもExcelで作成して、「.BAS」にコンバートして、「.BIN」ファイル作成。
「Disk-Manager」のおかげでExcelからのコンバートに手間かからないので、大きなロジックはExcelで開発→コンバート→MSXでデバッグした方が効率がはるかに良い。
一気に組み上げましたので、ちゃんと動作するかは不明。
次回は今回組んだサブルーチンの「デバッグ」作業をします。
2024年04月08日
【ゲーム制作】面クリア型アクションゲーム 第9回
面クリア型アクションゲーム 第9回です。
今回は走査線割込み処理を組んでいきます。
Laboratoryで扱った「水平ライン4枚(MSX2は8枚)を超えてSPRITEを表示させたい」と、ツールとして制作した「BGM演奏ルーチン(通常版)」を使います。
Excelで別々のロジックを、1つにまとめます。
また、更に他のメモリエリアの邪魔にならないよう、限界まで後ろに持っていきます。
Excelから「.BAS」にコンバートして、「.BIN」ファイル作成。
仮想SPRITEアトリビュートテーブルを&HD700に、
シャッフル用仮想SPRITEアトリビュートテーブルを&HD780に持っていき、走査線割込み処理自体は&HD800~&HDAFFに置きます。(これ以上後ろに置くと、多分DISK-BASICエリアを侵食し正常に動作しない。)
「BGM演奏ルーチン(通常版)」も同じ位置に持っていきます。
何度かアドレスエラーで飛びましたが、無事BGM鳴らしながらSPRITEの点滅が出来るようになりました。
因みにBGMは仮で「TETRIS SPECIAL」で使った「トロイカ」です。
良い感じ。
やっぱりExcelでプログラムした方が、検索・置換、行の入替、コメント・矢印の挿入、色分けが出来るので作業が捗ります。
次回は、サブルーチン集を組んでいきます。
2024年04月07日
【ゲーム制作】面クリア型アクションゲーム 第8回
面クリア型アクションゲーム 第8回です。
今回は、面データを作成します。
面データの作成には「MAP16 EDITOR」を利用します。
「MAP16 EDITOR」では、1キャラ16×16ドットとなります。
横16キャラ×縦11キャラ(FONTでは32×22)のマップを横に連ねる形で作成していきます。
設計では14面作成するので、MAPデータの幅は16キャラ×14面=224キャラとなります。
高さはそのまま11キャラです。
まずは「設定画面」で、2×2で4FONT使い1キャラクタを作成していきます。
読込んだFONTによっては上図のように矢印が表示されないことがあるので注意が必要。
次に「エディット画面」で、作ったキャラクタを使いMAPを作成していきます。
こんな感じになります。
パズルではないので、適当にどんどん作成していきます。
結構いい感じではないでしょうか。
次回は「走査線割込み処理」を組んでいきます。
2024年04月06日
【ゲーム制作】面クリア型アクションゲーム 第7回
2024年04月05日
【ゲーム制作】面クリア型アクションゲーム 第6回
面クリア型アクションゲーム 第6回です。
今回は、SPRITEキャラクタを作成します。
SPRITEキャラクタの作成には「SPRITE EDITOR」を利用します。
メインは当然、じゃんけんの「グー」、「チョキ」、「パー」です。
ただ、「グー」、「チョキ」、「パー」がそのまま動いていると違和感しかない。
そこで、向いている方向が判るように目と、歩いているのが判るように足を付けて、キャラクタにします。
「グー」、「チョキ」、「パー」も向きを付けれればよかったのですが、横向くと「チョキ」と「パー」の判別が困難なので諦めました。
因みに、目と足は少し下にずらして表示して、縦18ドット×横16ドットキャラクタにする予定です。
こんな感じです。
名前は「ハンド君」。
まぁ…、可愛い…?
次回は、FONTキャラクタを作成します。
2024年04月04日
【ゲーム制作】面クリア型アクションゲーム 第5回
面クリア型アクションゲーム 第5回です。
今回はイメージディスクを作成します。
さて、いよいよプログラミングを開始していく訳ですが、今作のアクションゲームでは、前作までのロジックはほとんど使いません。
一部のサブルーチンくらいです。
あとは何と言っても「SPRITE EDITOR」や「MAP16 EDITOR」を初めて使います。
マシン語設定プログラム(「BINSET.BAS」)は、Excelからコンバートするので要らないので、メインのBASICプログラム位かな?
前作「ADV.BAS」の名前変えて「ACT.BAS」とします。
走査線割込み処理のロジックも、Excelからコンバートするので不要。
あとは、全部エディター使って新たに作成します。
あ、「AUTOEXEC.BAS」も要るか。
2ファイルだけでイメージディスク作成。
「ACT.BAS」のほとんどをコメントで潰してテスト実行できる準備だけ進めておきます。
次回は、SPRITEキャラクタを作成します。