インクルリズム @ Wiki

ユニット間の角度を求める

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

ユニット間の角度を求めるサブルーチン


ある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[[@wikiへ>http://kam.jp"><META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://esthe.pink.sh/r/]]

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

目安箱バナー