Въртене и движение с твърдо тяло в Bullet Physics

Направих твърдо тяло за играча и се опитвах да накарам твърдото тяло да се движи заедно с контролите на плейъра.

Това, което имам предвид е, че всеки път, когато натискам напред, искам твърдото тяло да се движи напред в посоката, към която е обърнат играчът, същото с гърба, наляво, надясно. Досега мога да използвам прилагане на сила, за да движа твърдото тяло в статични посоки.

Правият ми въпрос е как да преместя твърдото тяло на играча в посоката, към която е обърнат играчът.

Други подробности:

  • Наистина не искам да използвам кинематични тела, ако не е необходимо, най-вече защото са много трудни в момента

  • Използвам glfw3 за въвеждане


person Arko    schedule 26.03.2014    source източник


Отговори (1)


Това е доста удивително, че няма да видите как да направите това, след като наистина сте успели да приложите сили в статични посоки към нещо, което сте конфигурирали над куршум.

Хайде, вие ИМАТЕ умението да го разберете.

Ето, само едно натискане в посока (хехе), хем. Просто вземете вектора на посоката на гледане (която може да бъде определена от камера, 1-ви или 3-ти изглед или дори нещо друго...).
Поздравления, този вектор е вашата сила с k фактор.

Трябва също така да модулирате тази сила според скоростта, не е нужно да ускорявате до безкрайна скорост, просто ускорявайте много в началото и след това регулирайте силата, за да достигне желаната скорост на ходене.

След това страничните посоки се получават чрез завъртане на обърнатия вектор на 90 градуса около стоящата ос (най-сигурно вертикалната). Можете да го получите, като просто размените компонентите и умножите по -1 един от тях. x,y,z става y,-x,z

За да се върнете назад, това е само -x, -y, -z върху обърнатия вектор.

Така че вашият ключ up не е обвързан с 0,1,0, а всъщност с facing_dir. Тази обърната директория може да се променя с мишката или някои други контроли на изгледа, като например цифрови клавиши 2,6,8,4. Или можете да пуснете нагоре, наляво, надясно, надолу за движение и да използвате w, a, s, d като всички останали и да използвате клавишите за посока, за да завъртите посоката с лице. (+мишка)

Много по-трудно е да се получи facing вектор от движение на мишката или клавиши за посока, отколкото да се намери как да се приложи силата, така че ако вече имате facing вектора, аз съм озадачен, че изобщо имате проблем.

person v.oddou    schedule 26.03.2014