BulletPhysics (ammo.js) - Как бы вы применили силу к объекту?
Уточнить - ammo.js
порт Bullet Physics, использующий mscripten
У меня есть персонаж (по сути, блок), который нужно толкать с силой. Я попробовал (я думаю) все методы для сил, но я все еще не могу переместить блок.
setVelocity(1,0,0)
даже не двигает блок - он просто останавливает гравитацию!applyImpulse([0,0,200000],[0,0,0])
абсолютно ничего не делает.applyForce([0,0,200000],[0,0,0])
абсолютно ничего не делает.
1 ответ
В связи с тем, что ammo.js является портом emscripten, вы должны использовать его родные типы данных для связи с ним...
Поэтому для установки скорости вам понадобится body.setLinearVelocity(new Ammo.btVector3(1,0,0));
То же самое касается applyForce и applyImpulse.
В моем коде я обычно делаю набор временных btVector3s и использую их по всему файлу, чтобы уменьшить накладные расходы на распределение и сборку мусора.
var tbv30 = new Ammo.btVector3();
function setBodyVelocity(body,x,y,z){
tbv30.setValue(x,y,z);
body.setLinearVelocity(tbv30);
}
удачи:D