オブジェクトaをオブジェクトbに向ける時は、「a.image_angle=point_direction(a.x,a.y,b.x,b.y)」にすればいいと思うのですが、image_angleを1ずつ変えて最終的に「a.image_angle=point_direction(a.x,a.y,b.x,b.y)」にしたいと思った時、「if(a.image_angle!=point_direction(a.x,a.y,b.x,b.y)){a.image_angle+=1}」だとオブジェクトbの位置によっては無駄な動きが増えてしまいます。オブジェクトbの位置に合わせてimage_angle+=1とimage_angle-=1を使い分けて実行するにはどうしたらいいですか?
やりたい動きと現状の無駄な動きがわからないので、こちらで推測して書きます。
オブジェクトの位置によってどっち回りに回転させるかという話で、角度が近い方に回転させたいのだと推測します。
で2つの角度の差を求めることができます。この値は正負の符号を持ちます。
この符号を利用すればどっち回りに回転させるかを制御できます。
image_angle += sign(diff);
で符号によって回転の方向が変わります。もし的外れだったらまた質問してください。
毎度のことながら説明が下手ですみません!!!!ありがとうございます!!これがやりたかったことです!!