ios - Cocos2D + 花栗鼠 : Disallowing Movement Along the X-axis & Preventing Rotation

标签 ios cocos2d-iphone game-physics chipmunk

我想要什么...

我们的目标是制作一款无尽的奔跑游戏,玩家必须通过跳跃来避开障碍和陷阱。为了做到这一点,角色不能水平移动,因为地面物体会处理这一点。当玩家跳跃时,唯一允许的移动是在 y 轴(垂直)上。另外,为了实现这一目标,我需要消除游戏过程中 body 可能发生的任何旋转。不确定是否有办法设置某种用于旋转的阻尼器或其他什么,但这就是我问的原因。

问题:

  • 如何取消沿 x 轴对主体进行的任何移动/平移?

  • 如何取消对主体进行的任何旋转?

(注意:我还没有尝试过任何东西,因为我不知道从哪里开始,而且我对花栗鼠场景还很陌生)

最佳答案

创建具有无限惯性矩的物体,使其不可旋转。

至于让环境而不是玩家移动,这有点奇怪,但它会工作得很好。你有几个选择,但它们都有点奇怪。您可以设置玩家形状的表面速度以匹配地面速度。然后摩擦力会将其固定到位,直到有东西撞击它并将其向后推。当您清除障碍物时,摩擦力将再次停止其 x 速度。如果你设置了地面的表面速度,那么你也不需要移动它,只需要玩家必须清除的障碍物。

听起来你实际上并不想要物理。大多数运行游戏只需要简单的 AABB 之间的碰撞,您可以通过几十行代码更轻松地完成此操作。

关于ios - Cocos2D + 花栗鼠 : Disallowing Movement Along the X-axis & Preventing Rotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304584/

相关文章:

xcode - 如何在 Xcode 中包含 cocos2d-x 模板?

ios - Sprite Kit 物理变量与 Cocos2d+Box2d 的比较

ios - 在spritekit中模拟水/在水上制作 Sprite "float"

ios - Messenger 无法从第一次尝试连接到 XMPP 服务器

iphone - 如何使用 SDK 7 在 iOS 7 上设置 UIPickerView 的背景颜色?

iphone - 自定义粒子系统

iphone - 如何在cocos2d中添加Action到Button

java - 磁模拟

iphone - 如何使用 AVAudioRecorder 恢复录音?

iphone - 未安装的 App 的 URL Scheme