Среда, 18 Декабря 2024, 18:34

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Физика, реалистичное трение об пол в TDS
RenusДата: Четверг, 10 Июля 2014, 23:51 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Доброго времени суток товарищи!
Решил сделать TDS и возник не тривиальный вопрос: как реализовать реалистичное трение об пол(скорее всего тайловый, неважно) всевозможных объектов. Взаимодействие объектов между собой реализуется родной физикой Box2D, а она работает в одном измерении и наложить один объект на другой нельзя((
Нормально использовать Linear Damping не получается, если ставить его больше определенного значения(около 56-58), то объект резко перестает реагировать на приложенные к не нему силы и импульсы(physics_apply_impulse...), однако игроком я его потолкать могу, но объект недостаточно тормозиться и дальнейшее увеличение Linear Damping ничего не меняет(видимо этот параметр не эквивалент трения, а какой то ограничитель скорости, как то так...).
Вообщем задача не простая и может показаться не понятной на первый взгляд. Хочется моделировать поверхности: земля, лед, песок и т.д.
Если кто подскажет как буду очень благодарен!)))
Вот екзеник и проект для просмотра:
exe - http://rghost.ru/56830231
gmx.zip - http://rghost.ru/56830296



Сообщение отредактировал Renus - Пятница, 11 Июля 2014, 00:03
AnthemДата: Пятница, 11 Июля 2014, 00:06 | Сообщение # 2
Д'Артаньян
Сейчас нет на сайте
Да, не очень понятно. Разве нельзя использовать ускорение?

Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
RenusДата: Пятница, 11 Июля 2014, 16:18 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Anthem, как его использовать? менять силу в зависимости от поверхности?
Упрощенно можно использовать Linear Damping, менять его значения на разной поверхности. Но Linear Damping это сопротивление среды движению, то есть оно зависит от скорости объекта(чем быстрее движение, тем больше сопротивление, как аэродинамическое сопротивление).
А реальное трение скольжения не зависит от скорости Fтр=kN=kmg, я его прооделировал так, в step:
Код
N = phy_mass * 9.8;
F = 0.5 * N;
direction = point_direction(phy_position_x, phy_position_y, phy_position_xprevious, phy_position_yprevious);
xF = lengthdir_x(F, direction);
yF = lengthdir_y(F, direction);

if (phy_speed_ms(phy_speed)>0)
{
     physics_apply_force(x, y, xF, yF);
}


Но я все равно не могу промоделировать трение на вращение объекта wacko
Да, и скажите в чем разница между переменными x, xprevious и phy_position_x, phy_position_xprevious ???
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг