Форум: "Игры";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
ВнизСоздание машины с ODE Найти похожие ветки
← →
Slicer__ (2005-04-24 12:02) [0]Помогите разобраться как создать машину с использованием ODE. Основу я создал, но вот как сделать что бы колеса поворачивались? Как не пытаюсь - появляются только глюки.
← →
[EViL] © (2005-04-24 16:42) [1]http://www.k00m.sexidude.com/article.php?sid=132&&thold=0
← →
Slicer__ (2005-04-24 18:27) [2]Я так понял за поворот отвечают эти функции:
dJointSetHinge2Param( j, dParamVel, v );
dJointSetHinge2Param( j, dParamFMax, 0.2 );
dJointSetHinge2Param( j, dParamLoStop, -0.75 );
dJointSetHinge2Param( j, dParamHiStop, 0.75 );
dJointSetHinge2Param( j, dParamFudgeFactor, 0.1);
Но объясните что они значат, точнее что значат эти параметры и как они работают?
← →
Alek Aaz (2005-04-25 04:10) [3]Читать !!! -> http://ode.org/doc/russian/
← →
Slicer__ (2005-04-26 15:29) [4]Да читал я уже это, объясни на примере колеса.
← →
Alek Aaz (2005-04-27 07:16) [5]Цитата:
Устанавливают/получают параметры ограничения/движения для каждого типа сочленения. Следующие параметры:
dParamLoStop
Нижний предел угла или позиции. Установка этого значения в -dInfinity (значение по умолчанию) выключает нижний предел. Для вращающихся сочленений, это значение должно быть больше чем - pi что бы был эффект.
dParamHiStop
Верхний предел угла или позиции. Установка этого значения в dInfinity (значение по умолчанию) выключает верхний предел. Для вращающихся сочленений, это значение должно быть меньше pi что бы был эффект. Если верхний предел меньше нижнего предела, то оба предела не дают никакого эффекта.
Максимальный угол поворота. от -0,75 до 0,75 радиан, т.е. от -90 до 90 градусов. Если это поворот колес относительно вертикальной оси, то это конечно круто :)
dParamVel
Желаемая скорость двигателя (здесь должна быть угловая или линейная скорость).
Равна v. Определяется как быстро ты орудуешь "рулем".
dParamFMax
Максимальная сила или вращающий момент, который двигатель будет использовать для достижения желаемой скорости. Это значение всегда должно быть больше или равно нулю. Установка этого значения в ноль (значение по умолчанию) выключает двигатель.
Что тут непонятно ??? Чем больше у тебя "мышц" тем быстрее будешь проворачивать руль
dParamFudgeFactor
В текущей реализации остановка/двигатель есть маленькая проблема: когда сочленение имеет остановку и двигатель, который пытается не допустить остановки, слишком большая сила может быть приложена за один шаг времени, вызывая “скачки” движения. Это надстроечный показатель(fudge factor) используется для масштабирования избыточной силы. Значение должно лежать между нулем и единицей (значение по умолчанию). Если в сочленении видны скачки движения, значение должно быть уменьшено. Делая это значение меньше можно уберечь двигатель от движения сочленения из положения остановки.
По русски говоря "загрубление" или "усреднение" сил за маленький период времени, чтобы колесо не "дергалось" в "стоячем" положении.
Читать батенька надо. Читать.
← →
Slicer__ (2005-04-28 19:18) [6]Делаю все как в примере и как описано ниже. Но колеса поворачиваются не равномерно - в воздухе крутся быстро (и без лимита на 0.75 радиан), а на земле очень медленно и не равномерно.
И как мне зафиксировать эту ось, что бы она не болталась свободно при езде?
Вот мой код:
if IsKeyDown(VK_LEFT) then steer:=steer+0.5;
if IsKeyDown(VK_RIGHT) then steer:=steer-0.5;
dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamVel2,steer);
dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamFMax2,1.2);
dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamLoStop2,-0.75);
dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamHiStop2,0.75);
dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamFudgeFactor2,0.1);
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c