リファレンス URL:angle_difference(ang1, ang2)

Degree 角単位(-180 and 180)を「実数型 (real) 」として戻り値。

任意の二点間を使った方向を求めた後、オブジェクト・インスタンスの持っている固有の角度( image_angle )との差を求め、その差を Degree 角単位(-180 and 180)の値として返す関数。

下の動作サンプルでは第一引数にマウスの XY 座標とオブジェクト・インスタンスの XY 座標間で方角を求めた値を代入、次に image_angle を使ってオブジェクト・インスタンスの角度を第二引数として代入している。

その結果 angle_difference では -180 〜 180 の間で値を返す。これが差分、そしてmin(abs(b), 4)*sign(b) の値を image_angle に加算。

以下のスクリプトを実行するとオブジェクト・インスタンスは常にマウスの XY 座標方向を向く動作として機能する。

動作デモ→

スクリプト・サンプル
var a = ceil(point_direction(x, y, mouse_x, mouse_y)); // 0 〜 360 の間 var b = floor(angle_difference(image_angle, a)); // -180 〜 180 の間 if (abs(360+b-self.diff) > 4){ // ガクガク動作対策 image_angle += min(abs(b), 4) * sign(b); self.diff = abs(b); } else { image_angle = a-180; };
Functions/angle_difference