我有4個SpriteNodes在屏幕上,我想不相互彈開,而是流過對方,同時保持一定的SpriteNodes碰撞和屏幕邊框。我已宣佈的類別爲所有這些:SpriteKit - 讓某些SpriteNodes不會發生衝突,而無需禁用它們的物理機構
let BCategory : UInt32 = 0x1 << 0
let B2Category : UInt32 = 0x1 << 1
let B3Category : UInt32 = 0x1 << 2
let B4Category : UInt32 = 0x1 << 3
let BotCategory : UInt32 = 0x1 << 4
let PadCategory : UInt32 = 0x1 << 5
let WallCategory : UInt32 = 0x1 << 6
並補充位掩碼以及:
b.physicsBody!.categoryBitMask = BCategory
b2.physicsBody!.categoryBitMask = B2Category
b3.physicsBody!.categoryBitMask = B3Category
b4.physicsBody!.categoryBitMask = B4Category
p.physicsBody!.categoryBitMask = PadCategory
wall.categoryBitMask = WallCategory
bot.physicsBody?.categoryBitMask = BotCategory
b.physicsBody?.contactTestBitMask = BotCategory | PadCategory
b2.physicsBody?.contactTestBitMask = BotCategory | PadCategory
b3.physicsBody?.contactTestBitMask = BotCategory | PadCategory
b4.physicsBody?.contactTestBitMask = BotCategory | PadCategory
除了檢查的SpriteNodes之間的碰撞,我想通過碰撞:
func didBeginContact(contact: SKPhysicsContact) {
是否有可能將所有的b的的(b,B2,B3,B4)與對,牆壁,和機器人發生碰撞而不是彼此之間?很感謝任何形式的幫助!
編輯:時遇到的問題是,由B的表示的SpriteNodes(B,B2,B3,B4)的反彈彼此的。我希望每個b都只能反彈BotCategory和PadCategory中包含的SpriteNodes,並且滑過/穿過其他b。
什麼問題?你實際上沒有說過發生了什麼。 – Fogmeister
@Fogmeister謝謝!我會編輯我的問題,以澄清 – hb22