Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.041 c
1-1122142486
ivanick
2005-07-23 22:14
2005.08.21
Кириллица в Delphi


1-1122909444
Андрей Молчанов
2005-08-01 19:17
2005.08.21
Поиск окна в приложении


14-1122722534
Knight
2005-07-30 15:22
2005.08.21
Нужен "шпиён" за 1с...


9-1114751547
Crave
2005-04-29 09:12
2005.08.21
Неисчезающее меню


3-1121086462
Layner
2005-07-11 16:54
2005.08.21
Как можно добраться из DataSource к свойствам ADOQuery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский