前回は数字の表示まで作りました。今回はRPGのダメージ値表示のプログラムの流れを説明します。
最初にリングのグラフィックを表示します。このリングにダメージ値を加えます。
http://wood-art.main.jp/www-hp/fullmsx/movies/spr09s.mp4
1078行のカラーコード14を赤くするので、この場合は14(灰色)のキャラにします。
その後にスプライト定義が入ります。若干待ちを作るためです。
1075行はダメージのランダム計算です。1~42の乱数にプラス460にしています。
最低で461~502までの数値です。だいたい500を超えるとあるゲームみたいに
私の感覚では呪文が暴走とかの確率です。会心の一撃になると100分の1くらいの値かなと
そして1078行で赤になり、できたランダム値からスプライトを作ります。
わずかな待ちを作ってスプライトができあがったら赤を灰色に戻します。
1265行のFORで10ドットまで移動します。Y1-YとY2-YでYをマイナス値に変えてます。
FORのZでわずかに待ちを作ります。これでRETURNしてスペースキーが押されるのを待ちます。
これでRPGの戦闘画面の作り方が何となくわかると思います。
実際はパラメータなど設定がかなりテクニカルですが、割愛しました。
あとはMSXだけの機能としてSETADJUSTがあります。逆にダメージを受けた場合は
SETADJUST(4,0)とSETADJUST(-4,0)を交互に動かすと画面が左右に揺れます。
次回はポインター表示に座標を入れてみます。