【发布时间】:2017-04-20 23:57:41
【问题描述】:
我正在使用 swift 3 和 spritekit 制作游戏,我需要一种方法让带有物理体的对象通过另一个物理体,同时仍然检测到碰撞但不反弹(有点像检查点系统,所以我可以告诉玩家经历了多少阶段)
【问题讨论】:
-
这可能会有所帮助:stackoverflow.com/a/21268099/819340
标签: swift sprite-kit
我正在使用 swift 3 和 spritekit 制作游戏,我需要一种方法让带有物理体的对象通过另一个物理体,同时仍然检测到碰撞但不反弹(有点像检查点系统,所以我可以告诉玩家经历了多少阶段)
【问题讨论】:
标签: swift sprite-kit
正如@PauloMattos 指出的那样;设置两个对象的contactTestBitMask 将触发didBegin 函数,您可以在其中检查哪些对象发生了碰撞并在需要时增加您的阶段。如果您没有为这两个对象设置碰撞位掩码,则对象将相互穿过而不是相互反弹。
还值得指出的是,当检测到接触时,didBegin 函数将在对象穿过另一个对象的整个过程中一直检测到接触。这可能会导致您的阶段增加数百次而不是一次。您可以做的是在检测到该接触后设置一个标志,以便您可以过滤掉两个对象之间的其余接触。
【讨论】: