如何删除 didBeginContact 中的 SKSpriteNode
How To Remove a SKSpriteNode in didBeginContact
如何删除 didBeginContact 方法中的 SKSpriteNode?
我将节点作为全局变量(节点:SKSpriteNode!),并且我在几个函数中更改了它的位置。但是,当它与另一个物体接触时,我想将它从屏幕上移除。我应该如何做到这一点?
func didBeginContact(contact: SKPhysicsContact) {
let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask
switch contactMask {
case ColliderType.Star.rawValue | ColliderType.Cup.rawValue:
println("")
default:
return
只需使用 removeFromParent()
方法将其从其父项中删除:
sprite.removeFromParent()
我不明白你为什么在屏幕上有多个球时使用全局变量。
如果球的 categoryBitMask
是 bitMaskBall
,您可以从父节点中删除传递给 didBeginContact
的接触对象中的节点
func didBeginContact(contact: SKPhysicsContact) {
var ball : SKNode? = nil
// Change it to categoryBitMask of the ball sprite
if contact.bodyA.categoryBitMask == bitMaskBall && contact.bodyB.categoryBitMask == bottomBitMask {
ball = contact.bodyA.node
}
else if contact.bodyB.categoryBitMask == bitMaskBall && contact.bodyA.categoryBitMask == bottomBitMask {
ball = contact.bodyB.node
}
ball?.removeFromParent()
}
条件使用球的 categoryBitMask
检查接触中是否有任何物体是球。然后我们把碰撞体内的节点提取出来,最后去掉。
如何删除 didBeginContact 方法中的 SKSpriteNode? 我将节点作为全局变量(节点:SKSpriteNode!),并且我在几个函数中更改了它的位置。但是,当它与另一个物体接触时,我想将它从屏幕上移除。我应该如何做到这一点?
func didBeginContact(contact: SKPhysicsContact) {
let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask
switch contactMask {
case ColliderType.Star.rawValue | ColliderType.Cup.rawValue:
println("")
default:
return
只需使用 removeFromParent()
方法将其从其父项中删除:
sprite.removeFromParent()
我不明白你为什么在屏幕上有多个球时使用全局变量。
如果球的 categoryBitMask
是 bitMaskBall
,您可以从父节点中删除传递给 didBeginContact
func didBeginContact(contact: SKPhysicsContact) {
var ball : SKNode? = nil
// Change it to categoryBitMask of the ball sprite
if contact.bodyA.categoryBitMask == bitMaskBall && contact.bodyB.categoryBitMask == bottomBitMask {
ball = contact.bodyA.node
}
else if contact.bodyB.categoryBitMask == bitMaskBall && contact.bodyA.categoryBitMask == bottomBitMask {
ball = contact.bodyB.node
}
ball?.removeFromParent()
}
条件使用球的 categoryBitMask
检查接触中是否有任何物体是球。然后我们把碰撞体内的节点提取出来,最后去掉。