![]() |
Простой физический движок
Вот уже второй день не могу сделать простой
физический движок во flash :) Памагите! Есть точка 1х1, имеющая какую-то начальную скорость и какой-то угол поворота (эти скорость и угол можно задавать). Точка находится внутри прямоугольника 300х1000 (вид сбоку).Нужно, чтобы эта точка имела ускорение свободного падения и отражалась от стенок. Никаких параметров больше нет, т.е. если точка падает вниз, то отразясь от пола она подлетит на такую же высоту. Буду очень благодарен за помощь! З.Ы. С Новым Годом всех :) |
Вы хотя бы выложите Ваши попытки (КОД)... а там посмотрим=)
|
Если есть угол и скорость, раскладываем по X и Y. Сдвиг осуществляется на регулярной основе (каждый кадр или по таймеру) прибавлением к координатам точки текущей скорости по X и Y соответственно, а также прибавлением к скорости по Y некоторой постоянной величины(ускорение свободного падения). При сдвиге проверяем, не выходит ли точка за границы зоны. Если выходит, то отрисовываем на границе. Если врезалась в вертикальную стену - умножаем скорость по X на -1, если в горизонтальную - скорость по Y на -1.
|
ОК, выкладываю.
Код точки: Код AS1/AS2:
|
Цитата:
P. S. onClipEvent - зло, не рекомендуется к использованию начиная с Flash MX 2004. Пишите хотя бы в кадрах - меньше будет проблем будущем |
Доработал+упростил :)
Код AS1/AS2:
Как исправить? |
Вот так:
Код AS1/AS2:
|
Вложений: 2
Хм, заменил
Но он, собака, все-равно ускоряется :) Вот что непонятно, если стартовая скорость по оси Y равна 0, то шарик НЕ ускоряется, а если НЕ равна 0, то ускоряется. Вкладываю Аутпуты с разным значением углов, чтобы понятнее объяснить в чем дело. Тут указано значение переменной vy |
Ух, кажется решил проблему :)
Дело было в возврате значения _y Код AS1/AS2:
Теперь все в порядке, спасибо! |
| Часовой пояс GMT +4, время: 14:14. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.