GameMaker 日本語掲示板

image_angle+=1を場合によってimage_angle-=1にする方法

2 コメント
views
17 フォロー

オブジェクト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を使い分けて実行するにはどうしたらいいですか?

xzy
作成: 2024/03/03 (日) 01:12:58
最終更新: 2024/03/03 (日) 01:13:49
通報 ...
1
asa 2024/03/03 (日) 11:20:25 修正

やりたい動きと現状の無駄な動きがわからないので、こちらで推測して書きます。
オブジェクトの位置によってどっち回りに回転させるかという話で、角度が近い方に回転させたいのだと推測します。

angle_difference(角度1, 角度2);

で2つの角度の差を求めることができます。この値は正負の符号を持ちます。
この符号を利用すればどっち回りに回転させるかを制御できます。

diff = angle_difference(向きたい角度, 今の自分の角度);

image_angle += sign(diff);で符号によって回転の方向が変わります。

もし的外れだったらまた質問してください。

2

毎度のことながら説明が下手ですみません!!!!ありがとうございます!!これがやりたかったことです!!