是否有可能在接触时破坏物体?就像不只是使用body.removeFromParent()从屏幕上删除它一样,我想要一个动画。
我有一个玩家和墙壁,当玩家有特殊的加电功能时,我希望它能够在接触时摧毁墙壁。我可以想象我像墙一样分裂了许多小的物理物体,它们像锚点一样固定在一起,当我的玩家击中它时,它们会受到玩家的冲动(我猜只是将isDynamic设置为true)并迷失了锚点,以便所有Sprite节点都可以飞翔,从而摧毁墙。
您能给我一些帮助/建议吗?
答案 0 :(得分:1)
您无需以任何方式将组成墙的节点固定在一起-只需将它们放在屏幕上即可。如果播放器没有上电,则关闭墙节点PhysicsBodies collisionBitMask
中播放器的位,以使墙节点不会与播放器碰撞。然后,当玩家撞到墙时,玩家会受到碰撞的影响(并反弹),但墙节点不会受到影响。
当玩家具有通电时,使墙节点受碰撞影响,并打开玩家与墙之间的接触(仅打开墙的位就足够了)玩家contactTestBitMask
中的类别。然后墙节点将受到碰撞的影响(以及移动或旋转),并且您的didBegin()
将被调用,您可以在每个墙节点上运行一个动作,该动作包含所需的动画并以{{1}结尾}。
碰撞和接触指南:测试位掩码: https://stackoverflow.com/a/40596890/1430420
操纵位掩码以打开和关闭碰撞和接触。 https://stackoverflow.com/a/46495864/1430420
编辑:SK演示,它显示了一个物体撞击了由块组成的墙壁:
创建一个新的SK项目并将其用作GameScene,快速操作:
removeFromParent()