アフィリエイト広告を利用しています
 

2024年03月18日

Laboratoryテーマ8「32枚を超えてSPRITEを表示させたい(非走査線割込)」



Laboratoryテーマ8「32枚を超えてSPRITEを表示させたい(非走査線割込)」です。

MSX1のSPRITEは非常に便利ですが、32枚までしか使えません。
ゲームによっては32枚じゃ足らない事もしばしば…。

そこで32枚を超えて表示させる方法を検討します。

実は技術的には走査線割込みを使って表示させることは可能です。
HRAさんが公開されてますので、ご覧ください。

私の方法は走査線割込みは使いません。(結果的には使いますが…。)
横スクロール系のゲームを作るなら必須となる前回のテーマ、Laboratoryテーマ7「水平ライン4枚(MSX2は8枚)を超えてSPRITEを表示させたい」。
その拡張で可能です。
組み込む必要のあるロジックを、少しの拡張するだけで32枚を超えて表示させる機能が追加できるので、メモリ的なメリットも大きいと思います。

要は簡単。
仮想スプライトアトリビュートテーブルを64キャラクタ分用意します。(&HC900~&HC9FF)
シャッフルする際は前回同様、32/64キャラクタ分シャッフルし表示します。
あとは素数を加算し、32以上になったら32引いていたところを、64以上になったら64引くに変更するだけです。
3_16_2.png

そう、この表示される32キャラクタは64キャラクタの中から素数入替法によって選ばれますので、何回かの表示の間に必ず64キャラクタ全て表示されます。

結果はこちら。
3_16_1.png

点滅していて見辛いですが、64キャラクタ表示されています。(横16キャラクタ×縦4キャラ=64キャラクタ)
キャラクタ表示数をカウントし、32キャラを超えたらこちらのロジックに切り替えるだけで済みます。
(切り替えないと32キャラクタ以下でも点滅してしまいます。)

走査線割込みが技術的に難しいと言う方はどうぞ。
サンプルプログラムです。

「OVER32.BAS」【ダウンロード

BASIC部です。
3_16_3.png
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory
検索
<< 2024年03月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
広告
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
プロフィール
カテゴリーアーカイブ
ファン
QRコード