Three.js提供的第一人称控件控制的对象是相机,在物理场景中并不能模拟真实的人物碰撞、移动和跳跃。所以想要实现真实的物理效果还需要自己制作控件(FPControl)。
FPControl
1.在物理场景中创建一个“人”
var fp_mesh = new Physijs.BoxMesh(new THREE.CubeGeometry(4, 10, 4), Physijs.createMaterial(new THREE.MeshPhongMaterial({
opacity: 0,
transparent: true
})), 1);
fp_mesh.position.set(0, 0, 0);
scene.add(fp_mesh);
这里创建了一个矩形的几何体来模拟成一个“人”。当然这里也可以使用人的模型通过上一篇讲的方法来实现模拟。
这样我们就初步的有了一个人而且有多种的物理效果。
可以通过setGravity()控制场景的重力从而来来控制人的重力。
可以通过restitution和friction两个参数来控制人碰撞以后的弹力和人的摩擦系数。
2.让“人”走起来
通过键盘的w,s,a,d来控制人物的前后左右移动。
(1)定义“人”移动状态