Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sprite kit SpriteKit与粒子碰撞_Sprite Kit - Fatal编程技术网

Sprite kit SpriteKit与粒子碰撞

Sprite kit SpriteKit与粒子碰撞,sprite-kit,Sprite Kit,我有一个粒子发射器,我想在粒子碰撞一些物理物体时检测它。 在SpriteKit API中是否有一种本机方法来实现这一点,或者我是否需要“作弊”?您可以使用与为任何sprite节点设置粒子发射器的物理体相同的方法来设置粒子发射器的物理体。然后可以设置类别位掩码属性和触点测试位掩码。didBeganContact方法可以在事后检测碰撞 每当两个物体相互接触时,就会调用didbearth contact。以下是有关此方法工作原理的apple参考链接: 点击[此处](:“苹果iOS开发者库”) 粒子没有

我有一个粒子发射器,我想在粒子碰撞一些物理物体时检测它。
在SpriteKit API中是否有一种本机方法来实现这一点,或者我是否需要“作弊”?

您可以使用与为任何sprite节点设置粒子发射器的物理体相同的方法来设置粒子发射器的物理体。然后可以设置类别位掩码属性和触点测试位掩码。didBeganContact方法可以在事后检测碰撞

每当两个物体相互接触时,就会调用didbearth contact。以下是有关此方法工作原理的apple参考链接:


点击[此处](:“苹果iOS开发者库”)

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

单个粒子无法碰撞。物理方面不行,其他方面也不行。你甚至得不到关于单个粒子的任何信息-你无法访问它的位置、旋转、速度。。没什么

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


此外,如果我们谈论的是“粒子”,通常意味着屏幕上有几十个甚至数百个粒子,那么如果使用带有物理实体的精灵对它们进行建模,那么物理处理和碰撞检测的数量很快就会变得非常昂贵。在走这条路之前,请进行性能测试。

谢谢!但它会对每个粒子调用这种方法吗?你认为即使为粒子发射器设置了目标节点,它也能工作吗?不幸的是,这不起作用,因为粒子没有物理体。谢谢你,我会试试看它是否能工作,因为尽管粒子是节点,但它们是有点不同的特殊节点。顺便说一句,你似乎对StackOverflow很陌生,所以她给了你一个建议:如果你想添加额外的信息,你可以编辑你的原始答案。如果有人像我刚才那样问你问题,你也可以直接在评论中回答。(通常你不会写两个答案)谢谢,我不知道好的,非常感谢您的详细回答!没有其他选择吗?比如说,我想模拟一次爆炸,我用粒子来做这件事,我想伤害任何被它触动的角色,有没有其他的方法来做这件事(即使我使用完全不同的粒子发射器),就像我说的,如果制作爆炸粒子精灵,则可以碰撞它们,但不能像使用基于规则的系统(如粒子发射器)那样整齐地设置它们的动画。