Как мне запустить __DirtyPosition и установить LinearVelocity? - PullRequest
0 голосов
/ 11 июня 2019

Итак, я знаком с three.js, но новичок в phys.js, и сейчас я работаю над созданием элементов управления от первого лица в phys.js. Я пытался заставить мой сет игрока двигаться, установив для моего игрока .__ dirtyPosition значение true. Затем я попытался заставить персонажа прыгать, используя setLinearVelocity. Они оба прекрасно работали отдельно, но не вместе.

Я пытался использовать setImpulse, делая переменные forward и backward в моей функции onKeyUp, и я пытался переключаться между dirtyPosition = true и false.

Вот мой базовый код:

requestAnimationFrame( move );
if ( fw === true ) {   player.__dirtyPosition = true;
      player.position.z = raycaster.ray.at( 0.5, place ).z 
      player.position.x = raycaster.ray.at( 0.5, place ).x };

if ( bw === true ) {  player.__dirtyPosition = true;
      player.position.z += raycaster.ray.at( -0.5, place ).z 
      player.position.x += raycaster.ray.at( -0.5, place ).x };

if ( jp === true ) { player.setLinearVelocity(new THREE.Vector3(0, 10, 0)); };

Я ожидал, что буду ходить и прыгать, так как на переменную y влияли только прыжки (и физический github показал их вместе), но я просто пошел, а затем, когда я отпустил клавишу w, мой LinearVelocity наконец-то сработал, и я упал так быстро я прошел сквозь землю.

...