Итак, я знаком с 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 наконец-то сработал, и я упал так быстро я прошел сквозь землю.