リファレンス 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