SpriteKit和粒子碰撞

时间:2014-06-25 07:38:43

标签: sprite-kit

我有一个粒子发射器,我想在粒子碰撞一些物理体时检测到它。 是否有本机方法在SpriteKit API中执行此操作,或者我是否需要"欺骗" ?

4 个答案:

答案 0 :(得分:7)

单个粒子不会碰撞。不是物理学,不是任何其他方式。您甚至无法获得有关单个粒子的任何信息 - 您无法访问它的位置,旋转,速度......没有。

如果你想“作弊”,你必须使用精灵模仿粒子发射器,并用动作或手动动画精灵。但请记住,这比粒子发射器效率低得多。

此外,如果我们在屏幕上谈论“粒子”(通常意味着数十甚至数百个),如果您使用附有物理机构的精灵对其进行建模,物理处理和碰撞检测的数量将变得非常昂贵。沿着这条道路前进行性能测试。

答案 1 :(得分:3)

粒子没有物理体,因此它们不会与Sprite Kit的物理引擎碰撞

答案 2 :(得分:0)

您可以像设置任何精灵节点一样设置粒子发射器的物理主体。然后,您可以设置类别位掩码属性和接触测试位掩码。方法didBeganContact可以在之后检测到碰撞。

答案 3 :(得分:0)

只要两个实体相互接触,就会调用didBegan联系人。以下是该方法的工作原理的苹果参考链接:

点击[此处](https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKPhysicsContactDelegate_Ref/Reference/Reference.html#//apple_ref/occ/intfm/SKPhysicsContactDelegate/didBeginContact:" Apple iOS开发人员库")!