![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2005
Сообщений: 22
|
Проблема в траектории движения... Посмотрите , please.
После условия столкновения с полом(значение по y), мяч не движется в левый верхний угол.... Не понимаю, по формулам кинематики все верно ![]() _root.ball._x=150; _root.ball._y=0; t=0; x0=10; y0=1; v0=18; a=10; v1=v0*0.8; _root.onEnterFrame=function() { vy=v0*t+(a*t*t)/2; t=t+0.6; _root.ball._x=x0+v0*t; _root.ball._y=y0+vy*t+(a*t*t)/2; if (_root.ball._y>400) { //при падении на землю t=0; _root.ball._x=z; //точка падения по x(правильно ли) _root.onEnterFrame=function() { t=t+0.5; vy2=-vy*0.8; _root.ball._x=z+v0*t;//на деле должно быть движение в правый верхний угол, а на деле лажа _root.ball._y= 400+vy*t-(a*t*t)/2; _root.ball._rotation+=10; // вращение } } } |
|
|||||
|
4AM Games
|
честно говоря не въехал в код...но насколько я понимаю логику все происходит из за того что ты переписываешь второй раз onEnterFrame.
_root.ball._x = 150;
_root.ball._y = 0;
t = 0;
x0 = 10;
y0 = 1;
v0 = 18;
a = 10;
v1 = v0 * 0.8;
_root.onEnterFrame = function() {
vy = v0 * t + (a * t * t) / 2;
t = t + 0.6;
_root.ball._x = x0 + v0 * t;
_root.ball._y = y0 + vy * t + (a * t * t) / 2;
if (_root.ball._y > 400) {
trace("fall");
//при падении на землю
t = 0;
_root.ball._x = z;
//точка падения по x(правильно ли)
t = t + 0.5;
vy2 = -vy * 0.8;
_root.ball._x = z + v0 * t;
//на деле должно быть движение в правый верхний угол, а на деле лажа
_root.ball._y = 400 + vy * t - (a * t * t) / 2;
_root.ball._rotation += 10;
// вращение
}
};
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
учитесь создавать контейнер для обработчика Ef....
|
|
|||||
|
Регистрация: Jun 2005
Сообщений: 22
|
штрек раскажи побробнее если можно :d
|
|
|||||
|
Попробуй сюда добавить законы кинематики
|
|
|||||
|
Регистрация: Jun 2005
Сообщений: 22
|
Отскок сделал. исходник
Но Как сделать дальнейшее затушающее движение мяча? Высота подьемa должна постепенно снижаться... Стоит ли применять логические операторы, с определенной сonst при достижении которой мяч будет двиться равноускоренно вниз, потом опять условие о столкновении с полом... и так до полной потери скорости. Если ли более простое решение? ![]() |
|
|||||
|
4AM Games
|
Насчет более простых движений Jobe Makar в своей книге Macromedia® Flash™ MX Game Design Demystified
советует не использовать точных физических законов, а делать их эмуляцию примерно так исходник посмотрю позже, если тебе еще нужна будет помощь.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Jun 2005
Сообщений: 22
|
Nirth дай исходник если не трудно. Очень инстересно..
Вы упоминули Macromedia® Flash™ MX Game Design Demystified - она существует в эл. виде, если да где скачать? ![]() |
|
|||||
|
4AM Games
|
Книжки нужно покупать на этом форуме запрещенно раздавать линки, поищи на других.
а насчет исходника, у меня нету=) я просто навоял код, создай на сцене мувик с именем ball и положи код в первый кадр и будет тебе счастье
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Вот пример из этой книги падающего вертикально мяча.
остаётся добавить перемещение по оси х |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|