![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+3 31.07.12]
[+1 27.08.13] |
Почему бы не подписать сцену на событие MouseDown а затем, по сему событию сохранять координаты точки, и относительно этой точки считать угол?
__________________
Хоть ты эту красоту не назовёшь граблями, всё равно никогда не наступай на них. |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 70
|
у меня, чтобы крутить обьект, по нему нужно сначала кликнуть и потом делать вращательные движения мышкой в любом месте
__________________
Блог: http://devizgl.blogspot.com/ |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 393
|
Думаю, что бы перестать крутить надо просто кликнуть, в любом месте экрана , и текущий выбор запомнится, вращение остановится.
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
По поводу масс эффекта думаю надо создавать виртуальный центр, вокруг которого считать поворот.
Играл давно и не помню, как там активизируется слежение за мышью — сразу при появлении меню, или надо нажать мышь и вращать, а потом отпустить когда подсветится на нужном пункте... Не важно, есть момент когда начинается слежение за движением мыши. В этот момент на круговом меню какой-то пункт "выбран", то есть "курсор меню" находится на каком-то секторе окружности. Создаем виртуальное представление окружности для мышки, то есть определяем центр окружности так, чтобы положение мыши "сейчас" было в том же секторе этой виртуальной окружности, что и "курсор меню" в реальной окружности. И далее вычисляем угол при движении мыши относительно этого виртуального центра. Ну а плавность я думаю твинами можно обеспечить.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 70
|
Да, как вариант строить окружность по 3 последним точкам и проверять относительно её центра, в какую сторону пользователь вращает курсор. Попробую и отпишусь о результатах.
Добавлено через 9 часов 48 минут Сделал так: Есть массив(очередь) из 3 точек(координаты курсора), через определенное время(например 100 мс), выбрасываем первую точку и добавляем последнюю(текущие координаты курсора). Еще храним предыдущую позицию курсора, записывается на каждом шаге. Теперь рассчитываем центр окружности по таким точкам: 1) точка с индексом 0 в массиве координат, 2) предыдущая позиция курсора, 3) текущая позиция. Находим угол поворота между предыдущей позицией курсора и текущей относительно центра окружности. Этот угол и будет коэффициентом поворота. Можно попробовать рассчитывать этот коэффициент как расстояние между пред. и текущей координатами курсора. Можно еще попробовать строить окружность по другим точкам, покрутить время удаления/добавления точек и т.д.
__________________
Блог: http://devizgl.blogspot.com/ Последний раз редактировалось vizgl; 13.07.2012 в 15:17. |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|