2015-06-30 6 views
0

Я кодирую игру SpriteKit, и я пытаюсь добавить эквивалент датчика Cocos2D. Моя проблема в том, что мой датчик продолжает толкать другие спрайты, но это не то, что я хочу. Я хочу, чтобы датчик мог накладываться на другие спрайты, а не нажимать их. Как это исправить? Вот код, я добавил для моего датчика:Стоп-спрайты от толчки друг друга в SpriteKit

bubble.physicsBody = SKPhysicsBody(circleOfRadius: CGFloat(50)) 
bubble.physicsBody?.dynamic = false 
bubble.physicsBody?.allowsRotation = false 
bubble.physicsBody?.affectedByGravity = false 

А вот мой метод столкновения:

func didBeginContact(contact: SKPhysicsContact) { 
    let collision:UInt32 = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask) 

    if collision == (playerCategory | crateCategory) { 
     NSLog("Game Over") 
     var myLabel = SKLabelNode(fontNamed: "Arial") 
     myLabel.text = "GAME OVER" 
     myLabel.fontSize = 50 
     myLabel.color = SKColor.blueColor() 
     myLabel.position = (CGPointMake(self.frame.size.width*0.5, self.frame.size.height*0.5)) 
     self.addChild(myLabel) 
     fisherman.physicsBody?.dynamic = false 
     fisherman.removeFromParent() 
     fish.physicsBody?.dynamic = false 
     fish.removeFromParent() 
     crate.physicsBody?.dynamic = false 
     crate.removeFromParent() 
     crateDuplicate.physicsBody?.dynamic = false 
     crateDuplicate.removeFromParent() 


    } 
    if collision == (playerCategory | bubbleCategory) { 
     NSLog("Bubble Contact") 
     bubbleDuplicate.removeAllActions() 
     bubbleDuplicate.removeFromParent() 
     bubble.removeAllActions() 
     bubble.removeFromParent() 
     bubbleDuplicate.setScale(0) 
     bubble.setScale(0) 
     bubbleDuplicate.alpha = 0 


       } 


} 

ответ

3

Установите collisionBitMask в 0, поэтому все столкновениях этого конкретного объекта к другим будут игнорируются.

+0

Это не сработало. – kriskendall99

+0

@ kriskendall99 вам нужно сделать объект динамическим. Статические объекты по-прежнему влияют на отскок других объектов, но игнорируют collisionBitMask. –

+0

Я сделал это, и он все еще не работает. – kriskendall99

Смежные вопросы