作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 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
最佳答案
我不明白当屏幕上有多个球时为什么要使用全局变量。
如果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
检查参与接触的任何物体是否是球。球的。然后我们提取碰撞体内部的节点,最后将其删除。
关于swift - 如何在 didBeginContact 中删除 SKSpriteNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28594840/
我是一名优秀的程序员,十分优秀!