我有一个粒子发射器,我想在粒子碰撞一些物理体时检测到它。 是否有本机方法在SpriteKit API中执行此操作,或者我是否需要"欺骗" ?
答案 0 :(得分:7)
单个粒子不会碰撞。不是物理学,不是任何其他方式。您甚至无法获得有关单个粒子的任何信息 - 您无法访问它的位置,旋转,速度......没有。
如果你想“作弊”,你必须使用精灵模仿粒子发射器,并用动作或手动动画精灵。但请记住,这比粒子发射器效率低得多。
此外,如果我们在屏幕上谈论“粒子”(通常意味着数十甚至数百个),如果您使用附有物理机构的精灵对其进行建模,物理处理和碰撞检测的数量将变得非常昂贵。沿着这条道路前进行性能测试。
答案 1 :(得分:3)
粒子没有物理体,因此它们不会与Sprite Kit的物理引擎碰撞
答案 2 :(得分:0)
您可以像设置任何精灵节点一样设置粒子发射器的物理主体。然后,您可以设置类别位掩码属性和接触测试位掩码。方法didBeganContact可以在之后检测到碰撞。
答案 3 :(得分:0)
点击[此处](https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKPhysicsContactDelegate_Ref/Reference/Reference.html#//apple_ref/occ/intfm/SKPhysicsContactDelegate/didBeginContact:" Apple iOS开发人员库")!