イベント間の距離

イベントとイベントとのマス単位距離を求めます。「平方根を求める」を併用すると正確に求まります。

 

イベント命令の記述例と、相互変換モジュールを用いて貼り付けるためのコードを併記しています。実際に入力する際は、相互変換モジュールを用いてスイッチ・変数番号を任意の番号に書き換えて変換すると効率的です。

概要

2つのイベントの座標を指定の変数に代入して実行すると、イベント同士の距離をマス単位で求めて『V[0003]:結果』に返します。途中の計算で「平方根を求める」を使用します。例えば、EV0003(12, 2), EV0005(3, 9)の距離を求める場合は『V[0003]:結果』に11が入ります(真値は√((12-3)^2+(2-9)^2)=√130=11.401……)。

イベント命令

相互変換モジュール用コード イベント命令記述例
#include "rpgfunc.as"

/* スイッチ・変数番号を入力 */
s1 = 1  // スイッチ1:前々回結果(「平方根を求める」と同一)
v1 = 1  // 変数1:引数(「平方根を求める」と同一)
v2 = 2  // 変数2:一時変数(「平方根を求める」と同一)
v3 = 3  // 変数3:結果(「平方根を求める」と同一)
v4 = 4  // 変数4:前々回結果(「平方根を求める」と同一)
event1ID = 3    // 1つ目のイベントID
event2ID = 5    // 2つ目のイベントID
sqrtID = 1      // 「平方根を求める」のコモンイベントID

/* 以下、イベント命令の構文 */
varsel v1 : var 0, 6, event1ID, 1
varsel v1 : var 2, 6, event2ID, 1
varsel v1 : var 3, 1, v1, 0
varsel v2 : var 0, 6, event1ID, 2
varsel v2 : var 2, 6, event2ID, 2
varsel v2 : var 3, 1, v2, 0
varsel v1 : var 1, 1, v2, 0
event 0, sqrtID
send
使用スイッチ
  • 『S[0001]:前々回結果』(「平方根を求める」と同一)

  • 使用変数
  • 『V[0001]:元の数』(「平方根を求める」と同一)
  • 『V[0002]:一時変数』(「平方根を求める」と同一)
  • 『V[0003]:結果』(「平方根を求める」と同一)
  • 『V[0004]:前々回結果』(「平方根を求める」と同一)
◆変数の操作:[0001:元の数]代入,(1つ目のイベントのX座標)
◆変数の操作:[0001:元の数]減算,(2つ目のイベントのX座標)
◆変数の操作:[0001:元の数]乗算,変数[0001]の値
◆変数の操作:[0002:一時変数]代入,(1つ目のイベントのY座標)
◆変数の操作:[0002:一時変数]減算,(2つ目のイベントのY座標)
◆変数の操作:[0002:一時変数]乗算,変数[0002]の値
◆変数の操作:[0001:元の数]加算,変数[0002]の値
◆イベントの呼び出し:平方根を求める
◆