自定义碰撞

最近,我被分配使用 Corona SDK 创建一个简单的游戏。游戏的主要支柱是一个简单的事件:用户应该把球放进篮子里,我应该能够处理这个事件。

这是一张更好理解的图片:

enter image description here

我成功地创建了篮子的碰撞形状,但是我遇到了内部碰撞的问题。我的第一个想法是:

  • 创建一个新的形状
  • 调整其大小和位置以适应篮子的“肚子”
  • 将其添加到物理世界,并侦听碰撞。

使用混合绘制,它看起来像这样:

enter image description here

但是有一个问题:如果将此形状添加到物理世界中,它将不会让球落进篮子,它也会将此形状视为实体对象。

因此,我的问题是:如何使此自定义对象发生碰撞,而不阻止球穿过它掉进篮子?我已经阅读了很多类似问题的论坛帖子,但是没有一个得到合适的答案。一定有一种优雅的方法来解决这个问题。

还有一个注意事项:请不要建议使用矩形交集手动检查碰撞,因为在这种简单情况下它可以工作,但是以后我可能需要改变篮子的形状,那么它就变得无用了!

点赞
用户269870
用户269870

Box2D 有一个叫做“sensor”的东西。

只需将内部碰撞对象设置为传感器,它将完全按照您的要求工作 :)

只需要执行以下操作:

MyInternalCollisionObject.isSensor = true
2012-10-14 03:33:46