【发布时间】:2015-09-25 06:43:47
【问题描述】:
我正在 spritekit 目标 c 的帮助下制作一个 spritekit 平台游戏。为此我使用了 spritekit 的物理引擎,除了我还没有找到一种方法来实现玩家与平台的 plaformer 风格碰撞之外,一切都很顺利。
我想要的是我的玩家应该在下落时与平台发生碰撞,而不是在跳跃时。如下图所示。此处玩家正在跳跃,因此他不能与平台发生碰撞
我尝试在 didBeginContact 方法中消除平台与玩家的冲突,但这并没有帮助,因为我的平台不是动态类型。添加和移除碰撞对玩家有效,但对平台无效。
任何帮助将不胜感激。
编辑:这是一个例子,如果我在接触两个相邻平台时更改玩家的碰撞位掩码会发生什么。
玩家一旦与另一个平台发生反应就会跌倒。
编辑: aramusss 的第二个解决方案很好,但它确实给我带来了另一个问题。由于我的游戏中有敌人站在平台上,如果我移除平台的物理体,敌人就会倒在上面。
【问题讨论】:
-
一种方法是检查玩家的velocity.dy...如果玩家正在下落,velocity.dy 将小于零。或者您可以检查玩家的位置并将其与平台位置进行比较,并相应地更改玩家的碰撞位掩码......但不确定所有这些是否适合您当前的设置......
-
我尝试了这种技术,但是当有两个彼此相邻的碱基时会出现问题。改变玩家的碰撞位掩码是有问题的。我在想是否有任何方法可以更改相应平台的位掩码之类的。这样会好很多。
标签: ios objective-c sprite-kit collision-detection