![]() |
Почему бы не подписать сцену на событие MouseDown а затем, по сему событию сохранять координаты точки, и относительно этой точки считать угол?
|
Цитата:
|
Цитата:
|
Думаю, что бы перестать крутить надо просто кликнуть, в любом месте экрана , и текущий выбор запомнится, вращение остановится.
|
По поводу масс эффекта думаю надо создавать виртуальный центр, вокруг которого считать поворот.
Играл давно и не помню, как там активизируется слежение за мышью — сразу при появлении меню, или надо нажать мышь и вращать, а потом отпустить когда подсветится на нужном пункте... Не важно, есть момент когда начинается слежение за движением мыши. В этот момент на круговом меню какой-то пункт "выбран", то есть "курсор меню" находится на каком-то секторе окружности. Создаем виртуальное представление окружности для мышки, то есть определяем центр окружности так, чтобы положение мыши "сейчас" было в том же секторе этой виртуальной окружности, что и "курсор меню" в реальной окружности. И далее вычисляем угол при движении мыши относительно этого виртуального центра. Ну а плавность я думаю твинами можно обеспечить. |
Да, как вариант строить окружность по 3 последним точкам и проверять относительно её центра, в какую сторону пользователь вращает курсор. Попробую и отпишусь о результатах.
Добавлено через 9 часов 48 минут Сделал так: Есть массив(очередь) из 3 точек(координаты курсора), через определенное время(например 100 мс), выбрасываем первую точку и добавляем последнюю(текущие координаты курсора). Еще храним предыдущую позицию курсора, записывается на каждом шаге. Теперь рассчитываем центр окружности по таким точкам: 1) точка с индексом 0 в массиве координат, 2) предыдущая позиция курсора, 3) текущая позиция. Находим угол поворота между предыдущей позицией курсора и текущей относительно центра окружности. Этот угол и будет коэффициентом поворота. Можно попробовать рассчитывать этот коэффициент как расстояние между пред. и текущей координатами курсора. Можно еще попробовать строить окружность по другим точкам, покрутить время удаления/добавления точек и т.д. |
| Часовой пояс GMT +4, время: 05:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.