![]() |
Противоположное движение объекта, перетаскиваемому
Здравствуйте,
Такая вот смешная проблема - есть три шарика, один синий и два зеленых, надо сделать так, чтоб при перетаскивании синего, зеленый, с которым сталкиваеться синий, двигался в противоположном направлении. Умом понимаю что при столкновении надо просто добавлять в каждом фрейме к координате зеленого разницу которую прошел синий после столкновения а реализовать в коде никак не могу, прямо какой-то мозговой затык, уже полдня борюсь. Соответсвенно вопрос: 1. Как реализовать в коде движение зеленого шарика, во время столкновения с синим, в противоположную сторону? http://farion.ua/tmp/vopros.gif |
Шары занесены в массив. Вы знаете индекс перетаскиваемого шара, знаете, в какую сторону его двигаете. Вот и меняйте индексы у рядом стоящих шаров в сторону перетаскивания. И местоположение шаров тоже, конечно же.
|
Цитата:
|
Ну делайте так, с радиусами-математикой, если вам так проще.
|
setIndex, Вам в помощь
|
Цитата:
|
Цитата:
Например: при смещении синего шара на x зеленый смещается на -x |
Вложений: 1
Да как угодно.
Знаем текущую координату, знаем прошлую, знаем дельту смещения. Двигаем согласно этих данных. |
Там в принципе все ясно должно быть. Ваша задача - ограничить движения двигаемого шарика некой областью.
|
1) Начинаете перетаскивать какой нибудь шар.
2) Во время перетаскивания (MouseEvent.MOUSE_MOVE) проверяете смещение перетаскиваемого шара от его начальных координат. 3) Если оно положительно, двигаете правый, относительно перетаскиваемого, шар на дельту, вычисленную в пункте 2, в противоположную сторону. 4) Если смещение (из пункта 2) отрицательно, делаете описанное в пункте 3 с левым шаром. 5) При превышении смещением расстояния между шарами, останавливаете перетаскивание. 6) Выравниваете шары при необходимости. 7) При использовании массива меняете переместившимся шарам индексы. Добавлено через 2 минуты Цитата:
|
| Часовой пояс GMT +4, время: 18:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.