首页 > 解决方案 > 如何跟踪 2 个精灵之间的多次碰撞?

问题描述

这里举个例子,只是为了便于理解:

Sprite A 是一个球。Sprite B 是一个立方体。当球接触立方体一次时,我希望标签说第一次接触。当同一个球再次接触同一个立方体时,我希望标签说第二次接触。当同一个球,再次接触同一个立方体时,我想让标签说第三次接触。

我该如何做到这一点?

在我看来,Sprite 套件似乎只允许对精灵之间的 1 次碰撞进行编程,这是非常有限的。特别是,因为我想创建一个敌人,它实际上会根据从玩家那里接收到的命中量来改变行为,而不仅仅是每次碰撞都采取相同的动作。

标签: sprite-kitspritecollision-detectioncollisionbit-masks

解决方案


想出了一个办法。如果您为精灵 A 分配分数并使用累积分数来跟踪分数,那么您可以使用“分数”作为碰撞计数器。因此,每次精灵 A 接触精灵 B 时,分数都会增加 10 分,然后简单地说 if score == 100 for example ... program something or if score == 150 ... program something (did begin method) 并且它起作用了,允许您在每个碰撞点用相同的精灵编写不同的动作或任何东西!惊人的。没想到它会起作用,但它确实起作用了:)


推荐阅读