我正在与Physijs合作创建一个简单的fps。没有Physijs,我将创建一个Player对象,并使用下面的代码扩展THREE.Mesh类。
function Player() {
THREE.Mesh.apply(this, arguments);
...
}
Player.prototype = Object.create(THREE.Mesh.prototype);然后,我会实例化一个播放器,并为第一个人的视觉添加相机。然而,我必须为球员编写所有的碰撞检测程序,这样他就不会从地板上掉下来。我可以用new Physijs.BoxMesh做地板,但是玩家呢?如何创建一个使用Physijs进行物理应用的“Player”类?我试过这样的..。Physijs.Mesh.apply(...)...还有Object.create(Physijs.Mesh.prototype),但这不起作用。
谢谢你的反馈。
发布于 2015-01-30 19:26:03
为了进行网格间的碰撞检测,所有的网格都必须是physi.js所知道的。换句话说,您必须使用physi.js形状之一。
所以你需要为你的球员提供一个physi.js网眼,这样他就不会从地板上掉下来。这不必是用户可以看到的相同的网格。你可以有一个无形的网格,跟随玩家周围,也许有一个更简单的几何。
如果您想要的Physi.js网格的基本形状(框、平面、球体等)之一以外的任何东西,你将需要构建复合形状。
https://stackoverflow.com/questions/28226156
复制相似问题