PDA

Просмотр полной версии : Гравитация во Флеш


Franches
29.06.2010, 21:53
Помогите я тут хотел сделать гравитацию и сделал один квадратик (mc) и другой прямоугольничек (mc2)
Пишу в кадре сцены
:rtfm:

a = -6;
_root.mc.onEnterFrame = function() {
_root.mc._y += a;
a += 0.4;
if (_root.mc.hitTest(_root.mc2)) {
a = a-5;
}
};
а вот как сделать так чтобы квадратик остановился низнаю. :umnik2:

rainbowrussia
29.06.2010, 22:50
Может так:

if (_root.mc._y > Stage.height) {
delete _root.mc.onEnterFrame;
}

Franches
29.06.2010, 22:58
Спасибо, но не работает.
Может исходник подкинеш? :rolleyes:

TanaTiX
29.06.2010, 23:07
Думаю так более правильно - наверное забыли учесть току регистрации мувика.
if (_root.mc._y > Stage.height-_root.mc._height) {
delete _root.mc.onEnterFrame;
_root.mc._y=Stage.height-_root.mc._height;
}

Franches
29.06.2010, 23:22
TanaTiX, спасибо но я не понимаю куда этот скрипт втыкать. :rtfm:
поставил в кадр сцены, не работает. :rolleyes:

rainbowrussia
29.06.2010, 23:30
В конец onEnterFrame, перед последней закрывающейся фигурной скобкой.

Franches
29.06.2010, 23:48
Не думайте что я кривой. :rolleyes::rolleyes:
Но блин не работает. :wacko:

TanaTiX
30.06.2010, 00:03
Примерно так

Franches
30.06.2010, 00:12
TanaTiX, :yahoo: спасибо!
тока не подумай что я задрот и сижу в этой теме и * всем мозг.
Но все равно скажи как сделать если он падает под углом?
Или чтоб он отскакивал пару раз а потом уже тормазил? :umnik2:

TanaTiX
30.06.2010, 00:26
Если нужны более сложные системы взаимодействия, чем квадрат и еще квадрат, если предполагаются кривые поверхности, много объектов и воздействующих на них сил, то лучше не * всем мозг, а смотреть в сторону известных физических движков. В этом поиск в помощь - мне с ними еще сталкиваться не приходилось, вряд ли подскажу. Ну и еще лучше переходить на ас3 или хотя бы писать в классах - многое становится проще с пониманием ООП.

По сабжу - аналогично отслеживаем координаты, по факту "удара" об основу меняем некоторую величину (аналогичную а в приведенном примере), которая вычисляется исходя из значения угла, скорости, и пр. - см. формулы в школьном курсе физики и тригонометрии.