Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Простейшая физика с шариком (http://www.flasher.ru/forum/showthread.php?t=101149)

Cepreu4 12.09.2007 04:55

Простейшая физика с шариком
 
Вложений: 1
Здравствуйте.
Искал искал что-нибудь похожее на форуме, но ненашел.
Пишу простейшую физику с шариком который можно подбрасывать и швырять с помощью курсора и всё бы отлично, да только шарик на высокой скорости несколько проходит через по и стены а то и вовсе застревает. И я даже знаю почему это происходит - при ускорении свободного падения, в обработчике onEnterFrame метод hitTest() проверяется уже после того как шарик получил новую координату и возможно прошел сквозь пол.
Ну а про то, что на полу он до конца вообще не останавливается я вообще не говорю :(
Собственно прилагаю и сам swf:
(на частицы не обращайте внимание - это у меня тренировочный полигон :), правый степпер это значение "прыгучести" шарика - при -0,4 и ниже очень любит застревать в стенах :) )
Подскажите пожалуйста, как можно поправить столь неприятный косяк? уже все мозги обмозговал

Therion 12.09.2007 06:58

я, посредством долгово сидения за компом,и думанием над проблемой такого типа долекой в молодости, нашёл решение проблемы....

Допустим у нас шар движеться по оси X по напралению к стене...
Допустим его скорость 6 px/кадр, тоесть шар в каждом кадре перемещяеться на 6 px.Допустим расстояние от шара до стены составляет 2px,из за этого hitTest() не сработает, и шар залезет в стену на 4 px...
но это легко исправить,надо сделать что то вроде этого:
Код:

if(D<V){
V=D
}
D=расстояние шарика к стене
V=скорость

Тоесть если расстояние меньше чем скорость,то в следующем кадре шар продвинеться на расстояние,и сработает столкновение...

artcraft 12.09.2007 07:07

уроки: http://tonypa.pri.ee/vectors/start.html
библиотека: http://www.cove.org/ape/index.htm
тут тоже скроро будет библиотека, а пока много заметок о физике и не только http://lab.polygonal.de/motor_physics/

Kikasso 12.09.2007 07:33

Вложений: 1
А это просто шарик. As is.

Cepreu4 12.09.2007 16:04

Цитата:

Сообщение от Therion
я, посредством долгово сидения за компом,и думанием над проблемой такого типа долекой в молодости, нашёл решение проблемы....

Допустим у нас шар движеться по оси X по напралению к стене...
Допустим его скорость 6 px/кадр, тоесть шар в каждом кадре перемещяеться на 6 px.Допустим расстояние от шара до стены составляет 2px,из за этого hitTest() не сработает, и шар залезет в стену на 4 px...
но это легко исправить,надо сделать что то вроде этого:
Код:

if(D<V){
V=D
}
D=расстояние шарика к стене
V=скорость

Тоесть если расстояние меньше чем скорость,то в следующем кадре шар продвинеться на расстояние,и сработает столкновение...

Гениально, а! Спасибо огромное


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

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