Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.09.2007, 04:55
Cepreu4 вне форума Посмотреть профиль Отправить личное сообщение для Cepreu4 Найти все сообщения от Cepreu4
  № 1  
Ответить с цитированием
Cepreu4
[+1 13.12.06]

Регистрация: Nov 2006
Сообщений: 43
По умолчанию Простейшая физика с шариком

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

Старый 12.09.2007, 06:58
Therion вне форума Посмотреть профиль Отправить личное сообщение для Therion Найти все сообщения от Therion
  № 2  
Ответить с цитированием
Therion
 
Аватар для Therion

Регистрация: Aug 2005
Сообщений: 785
я, посредством долгово сидения за компом,и думанием над проблемой такого типа долекой в молодости, нашёл решение проблемы....

Допустим у нас шар движеться по оси X по напралению к стене...
Допустим его скорость 6 px/кадр, тоесть шар в каждом кадре перемещяеться на 6 px.Допустим расстояние от шара до стены составляет 2px,из за этого hitTest() не сработает, и шар залезет в стену на 4 px...
но это легко исправить,надо сделать что то вроде этого:
Код:
if(D<V){
V=D
}
D=расстояние шарика к стене
V=скорость
Тоесть если расстояние меньше чем скорость,то в следующем кадре шар продвинеться на расстояние,и сработает столкновение...
__________________
Нано-флешер (в отставке)


Последний раз редактировалось Therion; 12.09.2007 в 07:01.
Старый 12.09.2007, 07:07
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 3  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
уроки: http://tonypa.pri.ee/vectors/start.html
библиотека: http://www.cove.org/ape/index.htm
тут тоже скроро будет библиотека, а пока много заметок о физике и не только http://lab.polygonal.de/motor_physics/
__________________
Хороший отдых - половина работы.


Последний раз редактировалось artcraft; 12.09.2007 в 07:13.
Старый 12.09.2007, 07:33
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 4  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
А это просто шарик. As is.
Вложения
Тип файла: rar ball.rar (7.4 Кб, 96 просмотров)

Старый 12.09.2007, 16:04
Cepreu4 вне форума Посмотреть профиль Отправить личное сообщение для Cepreu4 Найти все сообщения от Cepreu4
  № 5  
Ответить с цитированием
Cepreu4
[+1 13.12.06]

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

Допустим у нас шар движеться по оси X по напралению к стене...
Допустим его скорость 6 px/кадр, тоесть шар в каждом кадре перемещяеться на 6 px.Допустим расстояние от шара до стены составляет 2px,из за этого hitTest() не сработает, и шар залезет в стену на 4 px...
но это легко исправить,надо сделать что то вроде этого:
Код:
if(D<V){
V=D
}
D=расстояние шарика к стене
V=скорость
Тоесть если расстояние меньше чем скорость,то в следующем кадре шар продвинеться на расстояние,и сработает столкновение...
Гениально, а! Спасибо огромное

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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