第五回 変数の変換とマイナス化
今回は変数の処理のいくつかの方法を書いていこうと思います 変数を座標移動やライフへの変換や 丸々マイナスへの変換の方法を解説します
最初は変数の座標移動などへの変換です これは前回などにやった処理と同じで ループを利用して変数をマイナス1するたび 座標移動などの他の数値を1足すなどして 変数が0になるまで数値を変動させる処理です 基本的に減らす計算スクリプトは 変数を1マイナスするものと 1マイナスごとにプラスする数値の設定(変数系でもOK) 変数が0になった時の処理 この3つの後に移動で変数をマイナスするところに飛ばせば変換できるのですが 問題はループの制限です ループの制限とは画像呼出の「I」の命令を踏むまでに一定回数ループすると 無限ループ防止機能が働いてスクリプトが強制終了されてます なので十倍や百倍の数字の時はまとめて計算して ループ回数を減らす処置が必要になります まずは桁数の判別です+99以上だったらになってますが 「以上だったら」の命令はひとつ上の数値から適応なのでこの場合は +の100なら指定した場所に飛んでくれます 判別は○○以上だったらを使うので 百の桁から十の桁など大きい方を先に処理してください +9以上だったらに当てはまらない数字は 一の桁のということになります 百の桁と十の桁を判別したらとび先の処理を設定します まとめての計算なので百の桁分岐から来た場合は 百倍の処理 十の桁からは十倍の処理をさせます この後システム変数が0になっていたらなら処理が完了し それ以外ならまら+99以上ならに飛ばして変数が無くなるまで計算します これで変数を数値に変換の処理は完成です 今回は座標移動系でしたが応用としては 技を貯めただけダメージがアップなどにも使えます
次は応用でマイナスに変換です処理によってはプラスの数値を そのままマイナスに変換が必要なこともあります 先ほど座標移動を計算してた場所にタスク変数の処理を入れます ループによりこの場合はシステム変数が処理で0になった時 タスク変数がシステム変数分丸々引かれて同じ数字のマイナス分になるわけです 例としてシステム変数が80なら計算でシステム変数が0になった時 タスクは-80になっているというわけです そしてタスク変数をそのまま先ほどのシステム変数に代入すれば マイナスに変換できたことになります
マイナスに変換することの主な意味は プラス数値から引くことで差額を出したりなどで 判別するなどに使えます またX、Y座標など+の数値でしか入れることのできない数字を マイナス化するなどもでき 変数の幅を広げることができるはずです
今回は変数を他に換算する処理を書いていました これは今後のスクリプトの説明で使っていけるので 解説を短くすることができそうです 次回も何か短めのものを書いていきたいですね〜
|