マッハこうもり ver1.1 のプログラムの説明
バージョンアップした説明を書こうとして、ひさびさに マッハこうもり - プチコン3号まとめWiki を見に行ったのですが、正月早々にもかかわらずプレイしてくれた方からコメントがあり、心の中ではカーニバルがわっしょいわっしょいと歓声をあげるくらいうれしかったです。
プレイしていただき暖かいコメントまでいただいたことに改めてお礼を申し上げます。
その中に、2つ質問が書かれていたので、その回答をしようと思います。
説明が下手なので、図をちまちまと作ってきました。
#気づけば3時間も書いてました。きっと暖かい声援の力が大きいと思います。
時間があれば見てあげてください。
Q1.BGの並べ方
マッハこうもりは昨日も書きましたが SBMAP に対応しています。
SBMAP のデータを読み込む処理も、サンプルゲームの GAME3JUMP の LOADSUB サブルーチンの処理をベースにしています。
SBMAP のBGのデータ形式は、1つの整数値に 16 ビットずつ 2 つの横に並んだ BG の値が設定してあったりして、少し面倒な感じはしますが、基本的には1行ずつ読み込む素直な形式です。
簡単に説明するために、 4×3の小さなマップを例にして説明します。
マッハこうもりでは、横長なマップにしているため、読み取り方を少し変更しています。
ごちゃごちゃしていますが、 MACH_BAT1_1 の loadSbMap 関数で行っていますので参考にしてください。
Q2.背景の動かし方
背景、前景は BGANIM "XY+" で少しずつ動かしています。
マッハこうもりとケーキのスプライトは原点スプライトというもうひとつのスプライトにリンクさせて、原点スプライトを SPANIM "XY+" で BG と同じ分量だけ動かしています。ただし、ずらす値が BGANIM と SPANIM では+とーが逆になります。
ここらへんの処理は MACH_BAT1_1 の scrollMap 関数で行っていますので参考にしてください。
SPANIM と BGANIM の両方を同時に使ってスクロールしています。
それぞれのスクロールだけのイメージは次のとおりです。
長い記事を最後まで読んでいただきありがとうございます。
自分の作ったプログラムをわかりやすく説明することも大変なんだなと思いました。
こうやって書くことで、少し頭の中が整理できた気がします。