Если я правильно понимаю:
Сначала проверьте расстояние между спрайтом и центром колеса рулетки. Это скажет вам, если спрайт находится на краю колеса. (Если нет, ничего не происходит, верно?)
Затем найдите угол, который спрайт составляет от "оси X" колеса рулетки.
spriteAngle = atan2(sprite.x - rouletteCentre.x, sprite.y - rouletteCentre.y)
Вам нужно найти эквивалент функции atan2()
. Обычно он возвращает ответ в радианах; Вы можете преобразовать его в градусы, четверть оборота или что-то еще, если хотите.
Затем вычтите угол, на который вращается само колесо рулетки (если само колесо вращается, если нет, то вы уже сделали). Убедитесь, что ваши измерения угла соответствуют.
actualAngle = spriteAngle - rouletteRotationAngle
Обратите внимание, что actualAngle может находиться за пределами диапазона 0-360 градусов, и вам нужно будет сделать его "развернутым".
Наконец, вы захотите разрешить небольшой диапазон значений как приемлемый (например, от 98 градусов до 102 может считаться «северным»).