three.js学习笔记 基于物理引擎的第一人称控件

本文介绍了如何在Three.js中利用物理引擎创建一个具有真实碰撞、移动和跳跃效果的第一人称角色。通过设置重力、弹力和摩擦系数来调整物理行为,并通过键盘控制角色移动。同时,实现了角色的自由旋转,最后将相机绑定到角色上,实现第一人称视角。
摘要由CSDN通过智能技术生成

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)定义“人”移动状态


                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值