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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.02.2008, 14:17
sinya вне форума Посмотреть профиль Отправить личное сообщение для sinya Посетить домашнюю страницу sinya Найти все сообщения от sinya
  № 1  
Ответить с цитированием
sinya
 
Аватар для sinya

Регистрация: Apr 2003
Адрес: Ukraine, Kiev
Сообщений: 189
Отправить сообщение для sinya с помощью ICQ
По умолчанию физика - мячик скачет по местности

Всем привет.

Столкнулся с проблемой. Хочу запрограммировать скакание мяча по рельефу с правильными отскоками.. У мяча есть скорость по иксу vx и скорость по игреку vy. Каждый кадр к координатам x и y мяча добавляются эти скорости. Далее мяч (его центр) хитТестится с рельефом. Если центр мяча наложился на рельеф, мяч возвращается в предыдущую позицию и получает новый вектор скорости, соответствующий отскоку. И все работает, не идеально пока, но все-же.. Вот пример: http://politball.net.ua/5/sample1.html
Надо взять маленький черный кружок и побросать его.

Но чтобы мяч не улетал за кадр, я скорость мяча по иксу не прибавляю к его координате x, а отнимаю от координаты х рельефа. Все заработало, но мяч стал залипать на крутых поверхностях, хотя если его центр хитТестится с рельефом, то и рельеф, и мячик возвращаются на предыдущую позицию и получают новый вектор скорости. Вот как это происходит: http://politball.net.ua/5/sample2.html

и я никак не могу понять, почему в первом случае он не залипает, а во втором залипает, хотя единственная разница в коде вот:

в первом случае
Код:
sharik._x += _vx;
sharik._y += _vy;

if (bgr.hitTest(sharik._x, sharik._y, true)) {
sharik._x = oldX;
sharik._y = oldY;
}
а во втором случае
Код:
bgr._x -= _vx;
sharik._y += _vy;

if (bgr.hitTest(sharik._x, sharik._y, true)) {
bgr._x = oldXbgr;
sharik._y = oldY;
}
a?
__________________
Платон мне друг, но истина в вине.

Старый 29.02.2008, 17:33
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 2  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Может это поможет?
В конце статьи пример с "прыгающим шариком"

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

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

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


 


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


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