删除SpriteKit中的SKNode(Swift3)

时间:2017-03-27 21:58:39

标签: sknode

我制作的游戏与Flappy Bird类似。当我的英雄与屏幕上随机产生的一些硬币相撞时,我想要从屏幕上移除硬币。我已经尝试过一些我读过的不同的东西,但到目前为止还没有任何工作。我知道" coins.removeFromParent()"可能是要走的路。它应该放在" didBegin(_ contact:SKPhysicsContact {",但是从这里我还没有解决问题。

  • 我是否需要下面图片中的两个代码或者我可以将它们合二为一?这可能是问题吗?

image

image

1 个答案:

答案 0 :(得分:0)

你是对的,它需要放在" didBegin(_ contact:SKPhysicsContact {"和.removeFromParent()也是对的。缺少的元素是你需要先使用didBegin函数中的contact变量用于标识要删除的节点。

我想你想要的代码就是这样的。 (这需要在你的didBegin函数中。)

if contact.bodyA.categoryBitMask == ColliderType.coins.rawValue {

        print("body A is the coin")

        contact.bodyA.node!.removeFromParent()

      } else if contact.bodyB.categoryBitMask == ColliderType.coins.rawValue {

        print("body B is the coin")

        contact.bodyB.node!.removeFromParent()

      }