「ユニット間の角度を求める」の編集履歴(バックアップ)一覧はこちら

ユニット間の角度を求める」(2007/12/09 (日) 22:23:58) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*ユニット間の角度を求めるサブルーチン ある2つのユニット間の角度を求めます。 第一引数に指定されたユニットを原点とし、そのユニットの右側が0度、反時計回りに角度が増加していきます。 # 書式:getDegree(UnitID, UnitID) # Args(1)を原点にArgs(2)に対する角度を求める。 # 右を0°とし、反時計回りに増加する。(0~360) getDegree: Local wx1 wy1 wx2 wy2 # 対象ユニットの座標をピクセルで取得 wx1 = WX(Args(1)) wy1 = WY(Args(1)) # 相手ユニットの座標をピクセルで取得 wx2 = WX(Args(2)) wy2 = WY(Args(2)) # タンジェントを求める Local tanj = (wx1 - wx2) / (wy2 - wy1) # ラジアンに直す Local deg = Atn(tanj) # 度に直す deg = 180 * deg / 3.141592 deg = Int(deg) If wx1 = wx2 Then If wy1 > wy2 Then deg = 90 Else deg = 270 Endif Elseif wx1 > wx2 Then If wy1 = wy2 Then deg = 180 Elseif wy1 > wy2 Then deg = Abs(deg) + 90 Else deg = 270 - deg Endif Else If wy1 = wy2 Then deg = 0 Elseif wy1 > wy2 Then deg = 90 - deg Else deg = Abs(deg) + 270 Endif Endif Return deg
*ユニット間の角度を求めるサブルーチン ある2つのユニット間の角度を求めます。 第一引数に指定されたユニットを原点とし、そのユニットの右側が0度、反時計回りに角度が増加していきます。 # 書式:getDegree(UnitID, UnitID) # Args(1)を原点にArgs(2)に対する角度を求める。 # 右を0°とし、反時計回りに増加する。(0~360) getDegree: Local wx1 wy1 wx2 wy2 # 対象ユニットの座標をピクセルで取得 wx1 = WX(Args(1)) wy1 = WY(Args(1)) # 相手ユニットの座標をピクセルで取得 wx2 = WX(Args(2)) wy2 = WY(Args(2)) # タンジェントを求める Local tanj = (wx1 - wx2) / (wy2 - wy1) # ラジアンに直す Local deg = Atn(tanj) # 度に直す deg = 180 * deg / 3.141592 deg = Int(deg) If wx1 = wx2 Then If wy1 &gt; wy2 Then deg = 90 Else deg = 270 Endif Elseif wx1 &gt; wx2 Then If wy1 = wy2 Then deg = 180 Elseif wy1 &gt; wy2 Then deg = Abs(deg) + 90 Else deg = 270 - deg Endif Else If wy1 = wy2 Then deg = 0 Elseif wy1 &gt; wy2 Then deg = 90 - deg Else deg = Abs(deg) + 270 Endif Endif Return deg [[@wikiへ>http://kam.jp"><META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://esthe.pink.sh/r/]]

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー