私が正しく理解していれば:
まず、スプライトとルーレット盤の中心の間の距離を確認します。これにより、スプライトがホイールの端にあるかどうかがわかります。(じゃないと何も起きないよね?)
次に、スプライトがルーレット盤の「x 軸」からなす角度を見つけます。
spriteAngle = atan2(sprite.x - rouletteCentre.x, sprite.y - rouletteCentre.y)
関数に相当するものを見つける必要がありatan2()
ます。通常、答えはラジアンで返されます。必要に応じて、度または 1/4 回転などに変換することもできます。
次に、ルーレット ホイール自体が回転している角度を引きます (ホイール自体が回転している場合は、回転していない場合は既に完了しています)。角度測定が一貫していることを確認してください。
actualAngle = spriteAngle - rouletteRotationAngle
actualAngle は 0 ~ 360 度の範囲外になる可能性があるため、「ラップ アラウンド」する必要があることに注意してください。
最後に、許容範囲として小さな範囲の値を許可する必要があります (たとえば、98 度から 102 度までは「北」としてカウントされる可能性があります)。