Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   РикошеТ (http://www.flasher.ru/forum/showthread.php?t=37210)

Bipe® 17.09.2002 19:00

Пред идущий вопрос
ни как не связан с TTS
Тоесть я не прошу его что бы он на него отвечал!
Потомучто у него мало времени!
Я людей уважаю и понимаю их положение!
Так что я обращаюсь с просьбой ко всем ответить на мой вопрос!

Fisher 17.09.2002 19:28

Это у тебя голова каменная :D Ты хоть ченибудь сам сделай.

Bipe® 18.09.2002 00:32

Ты не волнуйся за меня придёт время и сделаю!
Наверное тебя сильно задело что TTS такой хороший человек а не такая бука как ты!
Он всё сказал обьяснил даже исходник дал а ты бред какой то несёшь! :mad:

Bipe® 18.09.2002 00:37

Ты то когда был новичком тоже всё сам делал?
Только я вижу что на твоём счётчике 799 вопросов/ответов!
Но мне кажеться что у тебя было больше ВОПРОСОВ чем ответов!
Ты не брал чужие исходники и ты не хотел ломать свою голову?
Да и вправду зачем!?
Есть же Flasher ты идёшь на него лезешь в форум и задаёшь вопросы другим,а я что не имею такой возможности?
Только самое главное отличие тебя от меня я в отличие от некоторых голову"ломаю"
Так что ты тут не бычься ,а сиди и дуй в "дырочку"

TTS 18.09.2002 03:53

Математика...
 
Я так понимаю, что всё происходит в поле силы тяжести?...
Пусть координаты прыгающего объекта (x1,y1), координаты покоящегося (x2,y2). Скорость будем обозначать Vx, Vy, - горизонтальная и вертикальная составляющие, t - время, g - ускорение свободного падения.
"Перелететь" объект2, значит: во время движения, когда летящий объект имеет координату x=x2, координата y должна быть больше y2+высота объекта2 (обозначим h, это для одинаковых объектов, для разных нужно считать расстояния от центра до края объектов и складывать). Вариантов начальных скоростей, при которых объект1 перепрыгнет объект2 - бесконечное множество. Будем считать по минимуму, т.е. h - максимальная высота прыжка. Чтобы её достичь, нужно иметь соотв. начальную вертикальную скорость. А эта скорость в отсутствие "трения" равна скорости при падении обратно на "пол". Так что можно посчитать обратную задачу: объект с начальной скоростью=0 падает с высоты h. Вспоминаем школу: путь пройденный за время t объекта с постоянным ускорением g равен g*t^2/2 (=h). Отсюда находим время: t=sqrt(2*h/g). Скорость равна Vy=gt. Дальше: за это время t объект1 должен пролететь по горизонтали расстояние x2-x1. По горизонтали нет ускорения, объект движется с постоянной скоростью, т.е. x2-x1=Vx*t. Отсюда горизонтальная скорость Vx=(x2-x1)/t.
Клипы называешь mc1 и mc2. ЭТО пихаешь в Clip Actions mc1. В корне прописываешь g (например, g=-.5 - отрицательное!!) и всё. По пробелу скачет. Только вверх ногами. Угадай, почему.

Код:

onClipEvent(keyDown){
  if(Key.getCode()==32){
      t=Math.sqrt(2*(_root.mc2._y+_root.mc2._height-_y)/-_root.g);
      Vy=-_root.g*t;
      Vx=(_root.mc2._x-_x)/t;
      y0=_y;
      onEnterFrame=function(){
        _x+=Vx;_y+=Vy;Vy+=_root.g;
                if(_y<y0){ _y=y0*2-_y; Vy=-Vy;}
      }
  }
}

Второй объект должен быть не выше первого, иначе под корнем отрицательное число... Это всё, конечно, просто, но вот если есть "трение", то тут интегралы вспоминать надо...

Fisher 18.09.2002 14:06

Мой основной принцип в подписи. :)

Bipe® 18.09.2002 16:33

Fisher сказал
Цитата:

Мой основной принцип в подписи.


Цитата:

Bipe® сказал то же самое
---------------------------------------------------------
Отдельное Спасибо TTS за то что так хорошо растолковал

Bipe® 19.09.2002 00:49

Люди а не подсажите S/N к Flash'у MX

Bipe® 22.09.2002 22:40

Чё это вы все замолкли то??

John Connor 23.09.2002 00:02

Предупреждение! читать правила!!!


Часовой пояс GMT +4, время: 03:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.