![]() |
И опять рулетка
Возник довольно предстазуемый вопрос - как остановить шарик на нужной ячейке) Мне известны координаты нужной ячейки, мне известны координаты шарика. То есть надо спланировать траекторию движения шарика...
Шарик движется по овалу: Код AS3:
В определенній момент определить и запомнить положение ячейки и просчитать, через сколько кадров она будет в єтой точке снова...И на основе этого времени (количества кадров) расчитать траекторию. Но вот с этим уже проблема...Я думал сводить движение к движению по спирали....но тогда нужно, чтоб шарик через нужное время был в нужной точке - то есть необходимо уменьшать радиусы овала и изменять угол - скорость...в итоге после долгих мучений ничего не вышло... Может кто-то сталкивался с такой проблемой и есть решение оптимальней...помогите плиз. |
Тут все идет от угла.
Дано: - шарик находится в точке (ballX, ballY) - шарик обладает начальной угловой скоростью w и двигается с замедлением - шарик должен сделать n полных оборотов и остановиться в точке с координатами (cellX, cellY) через t сек Найти: - угловой путь, пройденный шариком Зачем: - чтобы проанимировать шарик простым твином Решение: 1. Переводим координаты шарика и ячейки в угловые положения при помощи Math.atan2. 2. Искомый путь будет n*(2*Math.PI)*Math.abs(cellAngle - ballAngle) Теперь как это анимировать. Твин по сути занимается тем, что изменяет заданный параметр с начального значения на конечное в течение заданного промежутка времени по заданному закону. При помощи стандартного твина, изменение свойства angle с плавным замедлением будет выглядеть так: Код AS3:
Код AS3:
|
Спасибо большое...
Единственное, что непонятно - это перевод координат шарика и ячейки в угловые положения...Это делать с помощью Math.atan2 или как-то по другому? Также проблемой является то, что ячейка не находится на эллипсе, по которому движется шарик. |
Цитата:
Вторая особенность вполне логична и очевидна: ось y направлена вниз, так как мы имеем дело с экранными координатами. Цитата:
|
По-моему, угловая скорость при движении по эллипсу не является постоянной при равномерном движении шарика.
|
Угловая скорость тут не нужна вовсе, просто изначально я думал использовать ее для вычисления количества оборотов, которое обеспечит плавную остановку, но для этого потребуется дополнительный параметр - максимальное ускорение (замедление), при котором остановка выглядит плавной. В данном случае проще не запариваться, и подобрать количество оборотов эксприментально.
|
Расскажите пожалуйста детальнее как с помощью Tween можно двигать объект по эллипсу
|
ЧТобы не открывать новую тему, тоже тут спрошу.
Дано. Рулетка вид сверху, рулетка (круг ) поделена на секторы соотв числам. Нужно : если пришел результат, например 10, прокрутить рулетку раза 3 -4 в конце с замедлением, и остановится на нужном числе, так чтобы это число было наверху в центре. Это аналогия с циферблатом часов, крутится часовая стрелка 4 раза, вместе с ней крутятся и все часы - итог если выпало число 5, нужно чтобы 5 была в районе 12, где 12 стояло изначально. |
Вычисли угол, на который надо повернуть круг, чтобы нужный сектор оказался в нужном месте. Добавь 3-4 раза по 360° и запускай твин на rotation, с ускорением вначале и замедлением в конце. Если подходящего алгоритма твина нет, подели на три части – круг на твин-разгон, два круга на постоянной скорости и круг + остаток на твин-замедление.
|
Gaen,
Цитата:
и как вы делаете "прыжок" по ячейкам? |
| Часовой пояс GMT +4, время: 01:39. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.