RPGツクール2000/スイッチ・変数
■「剰余」って何?
(更新:2015/11/28)


イベントコマンド:変数の操作の中に剰余(じょうよ)と言う設定があります。



これは割り算の計算で出た余りの値を変数へ設定するものです。



◆変数の操作:[0001]代入,15
◆変数の操作:[0001]剰余,5

この場合は「15÷5=3…余り0」なので、
変数0001番には「0」が設定されます。

◆変数の操作:[0001]代入,16
◆変数の操作:[0001]剰余,5

この場合は「16÷5=3…余り1」なので、
変数0001番には「1」が設定されます。
このように割り算の「余り」を出したい時に使います。



もしも「剰余4」を実行した場合は、

と言ったように値が変化します。
ちょうど4の倍数の値になったらゼロになる形になります。

別の解釈で言えば、
「減算4」を4未満になるまで実行し続けるような処理になります。



☆使用例
剰余と言う設定はかなりマニアックな設定なので、
使わない方は多分永遠に使わない設定になるでしょう。

剰余をよく使うのは、自作システム(自作メニューや自作戦闘)を作る時です。
ここではいくつかの使用例を紹介します。



▼乱数の幅を変える
乱数の設定では乱数[0〜99]などと乱数の幅を決めておく必要があります。
しかし自作エンカウントなどで、
歩いていると徐々に敵の出現率を上げていきたいと言った場合は、
歩く度に[0〜99]→[0〜98]→[0〜97]と乱数の幅を小さくする必要があり、
大量の乱数の設定が必要になります。
このような場合は、予め0〜999999の乱数を実行しておき、
剰余を使って決められた乱数の範囲に変わるようにすると良いでしょう。

◆変数の操作:[0001:乱数]代入,乱数[0〜999999]
◆変数の操作:[0001:乱数]剰余,変数[0002]の値


この設定の場合、変数0002番の値を「86」にしますと、
乱数の範囲(変数0001番の値)は[0〜85]になります。
主人公が移動する度に乱数の範囲を小さくしたい場合は、
移動する度に変数0002番の値を「85」「84」と減らしていけば、
乱数の範囲(変数0001番の値)も[0〜84]→[0〜83]と徐々に小さくなります。



▼3桁のHPを1桁ずつ変数に分ける
ピクチャーやマップイベントを使って主人公のHPを表示する場合、
通常は1桁ずつ分けて表示します。

@ ◆変数の操作:[0001〜0003]代入,主人公01のHP
A ◆変数の操作:[0003:百の位]除算,100
B ◆変数の操作:[0002:十の位]除算,10
C ◆変数の操作:[0001〜0002]剰余,10


主人公のHPが「753」の場合の変数の値の変わり方
@:変数[0001][0002][0003]のそれぞれに「753」を代入。
A:変数[0003]を除算100にして「753」を「7」にする。
B:変数[0002]を除算10にして「753」を「75」にする。
C:変数[0001][0002]を剰余10にして、
  変数[0002](十の位)は「75」を「5」、
  変数[0001](一の位)は「753」を「3」とする。

これで、
変数[0003:百の位]=7
変数[0002:十の位]=5
変数[0001:一の位]=3
になります。



▼タイマーの残り時間を「分」と「秒」に分ける
イベントコマンド:タイマーの操作を使ってタイマーを動かしている時には、
イベントコマンド:変数の操作を使って、
タイマーの残り時間を変数の値として代入する事ができます。
この時にタイマーの残り時間は「秒単位」で代入されますので、
もしも「〜分〜秒」と文章で表示したい時には、
「分」と「秒」を別々の変数に分ける必要があります。
このような処理の時に剰余を使うと便利です。

◆変数の操作:[0001〜0002]代入,タイマーの残り秒数
◆変数の操作:[0001:分]除算,60
◆変数の操作:[0002:秒]剰余,60
◆文章:残り時間は、\V[1]分\V[2]秒です。


タイマーの残り時間が「912秒」の場合は、
「残り時間は、15分12秒です。」
と表示されます。



▼加算し続けた値をゼロに戻す
変数の値を加算し続けて、値が「10」になったら、
変数の値を「0」へ戻したい時には、以下のような設定ができます。

◆変数の操作:[0001:カーソル位置]加算,1
◆変数の操作:[0001:カーソル位置]剰余,10



◎関連ページ
 ●「変数」って何?
 ●「乱数」って何?
 ●イベントコマンド:変数の操作


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール