第五回

変数の変換とマイナス化

 

今回は変数の処理のいくつかの方法を書いていこうと思います

変数を座標移動やライフへの変換や

丸々マイナスへの変換の方法を解説します

 

最初は変数の座標移動などへの変換です

これは前回などにやった処理と同じで

ループを利用して変数をマイナス1するたび

座標移動などの他の数値を1足すなどして

変数が0になるまで数値を変動させる処理です

基本的に減らす計算スクリプトは

変数を1マイナスするものと

1マイナスごとにプラスする数値の設定(変数系でもOK)

変数が0になった時の処理

この3つの後に移動で変数をマイナスするところに飛ばせば変換できるのですが

問題はループの制限です

ループの制限とは画像呼出の「I」の命令を踏むまでに一定回数ループすると

無限ループ防止機能が働いてスクリプトが強制終了されてます

なので十倍や百倍の数字の時はまとめて計算して

ループ回数を減らす処置が必要になります

まずは桁数の判別です+99以上だったらになってますが

「以上だったら」の命令はひとつ上の数値から適応なのでこの場合は

+の100なら指定した場所に飛んでくれます

判別は○○以上だったらを使うので

百の桁から十の桁など大きい方を先に処理してください

+9以上だったらに当てはまらない数字は

一の桁のということになります

百の桁と十の桁を判別したらとび先の処理を設定します

まとめての計算なので百の桁分岐から来た場合は

百倍の処理 十の桁からは十倍の処理をさせます

この後システム変数が0になっていたらなら処理が完了し

それ以外ならまら+99以上ならに飛ばして変数が無くなるまで計算します

これで変数を数値に変換の処理は完成です

今回は座標移動系でしたが応用としては

技を貯めただけダメージがアップなどにも使えます

 

次は応用でマイナスに変換です処理によってはプラスの数値を

そのままマイナスに変換が必要なこともあります

先ほど座標移動を計算してた場所にタスク変数の処理を入れます

ループによりこの場合はシステム変数が処理で0になった時

タスク変数がシステム変数分丸々引かれて同じ数字のマイナス分になるわけです

例としてシステム変数が80なら計算でシステム変数が0になった時

タスクは-80になっているというわけです

そしてタスク変数をそのまま先ほどのシステム変数に代入すれば

マイナスに変換できたことになります

 

マイナスに変換することの主な意味は

プラス数値から引くことで差額を出したりなどで

判別するなどに使えます

またX、Y座標など+の数値でしか入れることのできない数字を

マイナス化するなどもでき 変数の幅を広げることができるはずです

 

今回は変数を他に換算する処理を書いていました

これは今後のスクリプトの説明で使っていけるので

解説を短くすることができそうです

次回も何か短めのものを書いていきたいですね〜

 

 

 

 

inserted by FC2 system