forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   xEntityApplyImpulse (http://forum.boolean.name/showthread.php?t=13254)

Motorboy 30.08.2010 23:39

xEntityApplyImpulse
 
Вложений: 1
Пытаюсь сделать выстрел на физике встроенной в Xors.
Использую команду xEntityApplyImpulse.
Для вектора импульса применяю xTFormNormal 0,0,1,camera,0
Для точки приложения импульса применяю xTFormPoint pickX,pickY,pickZ,0,pickedentity.
Проблема в том что импульс прикладывается в зависимости от того какой стороной повернуто пикнутое тело...Если например куб лежит на земле так как он был создан то импульс прикладывается правильно(если выстрелить в правый угол куба то он и будет вращаться вправо).Если же он перевернется вверх ногами то при выстреле в тот же правый угол куб вращается в противоположную сторону...Это баг Xors-a или у меня руки кривые?

пример в аттаче.

.Squid 31.08.2010 02:00

Ответ: xEntityApplyImpulse
 
Аргхх. Пользуясь случаем, хочу передать Эрвину Кумансу пламенный привет и пожелать ему поскорее завязать с тяжелыми наркотиками.
В общем, в функции xEntityApplyImpulse последние три аргумента - координаты точки приложения импусьса. Эта точка задается относительно центра масс тела, но в мировых координатах (звучит тупо, не правда ли?).
Т.е. в твоем случае надо делать так.
Код:

tfpx#=xPickedX() - xEntityX(pick, 1)
tfpy#=xPickedY() - xEntityY(pick, 1)
tfpz#=xPickedZ() - xEntityZ(pick, 1)

ЗЫ. Позже сделаем нормальную "локальную" и "глобальную" версии всех этих функций. Ну т.е. будет еще один аргумент global, как в большинстве аналогичных функций (xPositionEntity и т.п.). Следите за обновлениями на http://hot.xors3d.com

Motorboy 31.08.2010 20:12

Ответ: xEntityApplyImpulse
 
Спасибо за подсказку.Так все работает.:)
Еще вопрос...при удалении ентити командой xFreeEntity физическое тело тоже удаляется?
Есть ли возможность удалить ентити без удаления физ.тела?Для того что бы использовать низкополигональный меш для физ.оболочки высокополигональной модели?

.Squid 31.08.2010 20:23

Ответ: xEntityApplyImpulse
 
Да, xFreeEntity удаляет и физическое тело тоже.
Нет, удалить сущность без удаления физического тела нельзя.
Цитата:

Для того что бы использовать низкополигональный меш для физ.оболочки высокополигональной модели
Лучше мы реализуем возможность создание тримеша из произвольной сущности, а не только из той, к которой будет привязано физическое тело.
Кстати, если есть возможность, то лучше использовать выпуклый каркас (convex hull) вместо тримеша, т.к. первый работает быстрее. Позже добавим compound'ы - они тоже быстрее тримеша, но могут быть не выпуклыми.

Motorboy 31.08.2010 23:02

Ответ: xEntityApplyImpulse
 
А можно еще добавить команды для получения скорости физ.тела по осям ХYZ?
Аналог pxBodyGetLinearSpeedX в врапере PhisX.

.Squid 31.08.2010 23:37

Ответ: xEntityApplyImpulse
 
Можно.

Motorboy 01.09.2010 00:08

Ответ: xEntityApplyImpulse
 
Будем ждать...Надеюсь в следующей ревизии будет...:)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot