【发布时间】:2017-08-09 22:46:31
【问题描述】:
我一直在研究一个基本的 FPS 风格的项目(使用了我从潜伏在这里找到的很多建议)并且遇到了一个问题。
这是代码,首先-https://www.babylonjs-playground.com/#GYZQLK#3
使用箭头键向前移动相机直到撞到墙上,你就会看到我的问题。
我正在尝试
- 具有自然的跳跃机制,并且
- 在摄像头、地面、墙壁等之间进行碰撞检测。
一开始我只是使用 Babylon 的原生 .checkCollisions 来做这个,它非常适用于相机与物体以及相机与墙壁的碰撞。但是,我无法让它在跳跃时正常工作。即使按照其他人的教程,(http://www.html5gamedevs.com/topic/12198-camera-jump/) 我也没有得到我想要的结果;至少在我的电脑上,所有这些操场草图仍然“挂”在跳跃的顶部,直到按下其他箭头。
所以,我换了个方向并尝试(单独)使用 Oimo 和 Cannon 来获得更强大的物理效果。出于某种原因,我仍然无法让 Oimo 工作(“this.world.worldscale 不是一个函数”为任何人敲响了警钟?我在这方面找不到任何东西)但我在 Cannon 上取得了不错的成绩。
简而言之,我已经完成了跳跃,但现在与墙壁的碰撞都......很时髦。
我很困惑。我看不出这种碰撞检测与地面和相机之间的碰撞检测有何不同,但显然有些不对劲。我已经尝试过与其他水平对象(盒子、球体)相比,并且将相机的物理冒名顶替者设置为盒子(这会使所有的转动变得紧张),效果最好。
有什么建议或想法吗?谢谢大家!
【问题讨论】:
标签: collision-detection game-physics babylonjs cannon.js