我想要一个精灵在触摸另一个精灵时删除自己.就在他们触摸时,他们只是互相推动.
我有这个:
let alphaCategory: UInt32 = 0x1 << 0 let betaCategory: UInt32 = 0x1 << 1
我让精灵充满活力而不受重力的影响
self.physicsworld.contactDelegate = self alpha.physicsBody?.categoryBitMask = alphaCategory alpha.physicsBody?.contactTestBitmask = betaCategory
和
beta.physicsBody?.categoryBitMask = betaCategory beta.physicsBody?.contactTestBitmask = alphaCategory
func didBeginContact(contact: SKPhysicsContact) { var firstBody: SKPhysicsBody var secondBody: SKPhysicsBody if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask { firstBody = contact.bodyA secondBody = contact.BodyB beta.removeFromParent() } }
首先,你应该设置你的firstBody& secondBody到他们的collisionBitMask的顺序:
if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask { firstBody = contact.bodyA secondBody = contact.bodyB } else { firstBody = contact.bodyB secondBody = contact.bodyA } if firstBody.categoryBitMask=0 && secondBody.categoryBitMask=1 { secondBody.removeFromParent() }
这将防止你的精灵与任何东西(包括彼此)发生碰撞.将其设置为设置其他BitMask属性的位置:
alpha.physicsBody.collisionBitMask = 0 beta.physicsBody.collisionBitMask = 0
原文地址:https://www.jb51.cc/swift/320101.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。