今回はMSX2のMSXBASICver2.0の新機能「カラースプライト」を試してみました。
カラースプライト機能があっても、そこまで凝ったモノを作らないので必要ないところですが
この命令があればカンタンに多彩なモノになります。
用意するものはn-spr.basで作った互換スプライトデータです。
セーブでなくスプライトを動かすコマンドを使用すると互換スプライトデータも保存されます。
これはSPRITE$(1)=N$のN$をデータにしたものです。
FULLMSX2020年復活記念パッケージ、互換スプライトデータ:
FULLMSX for WEB:FULLMSX2020年復活記念パッケージ (fc2.com)
なお、2022年6月以降は次のリンクになります。
FULLMSX for BLOG:MSXデータ集 (fc2.com)
今回はマルチステートメントを外してシングルステートメントにしました。
互換スプライトデータを引用するとこんなにシンプルになります。
SCREEN5,3で16ドットスプライト拡大しています。
160行は0ehで上位の0はビットコマンドが入り下位は1ラインごとに色を指定します。
ここではコード14の灰色を指定している具合です。
180~210行は括弧を分解して外してみました。
こんな風に変数と文字列が必要になりますがシンプルになっています。
240,250行は同じ命令を指定しています。
COLORSPRITEでスプライトの色の変更だけなら文字数を減らすことができますね。
290行では実際に使ってみます。
右に移動して赤に変わるようにしてみました。実行してみると
移動して表示することができました。ここで何か押すと赤に変わります。
COLORSPRITE$とCOLORSPRITEと混同してしまいますが、
活用すればもっとわかりやすくプログラムを書くことができそうです。
通常はSCREEN5,2で16ドットスプライトで使うのですが、
COLORSPRITE$では上半分は変わりましたが16ドットモード(16x16)は対応していないようです。
8ドットモード(8x8)は動作しました。このモードはSCREEN命令の第2パラメータで指定します。
8ドットで合成して16ドットにする方法で座標が4つ必要になりますが
4面の色指定ができるみたいです。BlueMSXでできるのか不明です。
MSXスプライト徹底講座:
https://fullmsx.web.fc2.com/detail/msx-archive/msxi-sp.html
※コメント投稿者のブログIDはブログ作成者のみに通知されます