![]() |
эффект притяжения
Здравствуйте, дорогие форумчане!
Хочу обратиться с вопросом, ответ на который не могу найти уже целый день и честно говоря даже отчаялся... Задача заключается в воссоздании эффекта притяжения, но с замедлением на пути к точке притяжения. Грубо говоря, есть область, попав в которую объект стремится к одной точке замедляясь по пути к ней. Координаты точки: x=113 y=120 Есть кнопка, которая инициирует перетаскивание мувиклипа (red). Если координаты мувиклипа попадают в обозначенную область - должно сработать притяжение. Но как его описать я ни как не могу сообразить. в руте код Код AS1/AS2:
|
Цитата:
Попробуйте сделать движение объекта зависимым от расстояния до точки. Расстояние ищите с помощью формулы Пифагора. С помощью Math.atan2(dy, dx) ищите угол между объектом и точкой в радианах. Чуть позже попробую пример собрать :) |
2Hauts: было бы здорово, но мне кажется, что теорема пифагора тут не причем.
У меня получалось направленное движение к этой точке, но оно было не пропорциональным: если объект находился на равном расстоянии как по х, так и по у, то все ок, но если объект был ближе по х (или по у), то он сперва достигал ближайшей константы, а затем движение по данной оси прекращалось, но продолжалось по другой. Зрелище, конечно, слабо напоминало притяжение. А мне же еще и замедление надо ввести... Наверно описав трение? Друзья, у кого с математикой хорошо, помогите пожалуйста! Заранее спасибо! |
greep,
У Hauts с математикой хорошо. Теоремой Пифагора находите расстояние до цели. На основе этого расстояния рассчитываете скорость как вам надо. Затем двигаете объект в направлений угла с найденной скоростью. |
2Tails: я не хотел ни кого оскорбить своими домыслами. Гипотенузу, я допустим вычислю по формуле h = Math.sqrt(x * x + y * y), а вот как быть со скоростью и движением в направлении угла? Если вас не затруднит, опишите пожалуйста формулой или кодом...
|
Допустим, есть у вас скорость:
Код AS1/AS2:
Код AS1/AS2:
Код AS1/AS2:
пс. Как найти угол в радианах вам написал Hauts: Цитата:
|
Вложений: 2
greep, всё довольно просто :)
Код AS1/AS2:
Кликайте на флэшке, чтобы блок подвинулся. |
А ещё, можно сделать векторами! Но это совсем другая история.
Hauts, Ссори что вклинился :) |
Tails, да я только "за" :)
|
Куда уж проще)
Код AS1/AS2:
|
| Часовой пояс GMT +4, время: 16:23. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.