javascript - CannonJS 锁定特定轴上的旋转

标签 javascript rotation collision-detection cannon.js

我看到了CannonJS FPS Demo并注意到它使用了一个球体来进行玩家碰撞。我的角色不是球体,而是盒子或胶囊。

我尝试过使用盒子进行碰撞,但我似乎无法 lock the rotation在 X 或 Z 轴上设置 inertiaangleFactor。当使用fixedRotation时,它确实会锁定所有轴的旋转,但会导致运动受到严格限制。当使用不受限制的盒子形状时,盒子在移动时会开始翻滚。

如何通过锁定 X 轴和 Z 轴的旋转来保持玩家直立?

最佳答案

只需在初始化时将 angularDamping 设置为 1:

playerBody.angularDamping = 1;

然后在动画/运动部分中使用旋转键处理程序:

playerBody.angularDamping = 0;

但是不要忘记在每个循环开始时将其设置回 1。固定旋转似乎只是阻止了一些事情。我也尝试自己理解这一点: Here you can read more about it

关于javascript - CannonJS 锁定特定轴上的旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42598275/

相关文章:

javascript - Node.js - 在管道响应之前检查流是否有错误

javascript - 使覆盖文本的 div 仅对文本进行动画处理和着色

java - 图像旋转Java

iphone - 如何在cocos2d中对多个 Sprite 进行像素完美碰撞?

javascript - jsx 三元运算符中的多个条件

Javascript - 通过添加先前的值来更新数组值

animation - 反向旋转旋转div的子元素

c++ - OpenGL 在应该围绕本地原点时围绕世界原点旋转

java - 微型飞行器碰撞检测

c# - XNA、C# - 检查 Vector2 路径是否与另一个 Vector2 路径交叉