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
}
}
Это не сработало. – kriskendall99
@ kriskendall99 вам нужно сделать объект динамическим. Статические объекты по-прежнему влияют на отскок других объектов, но игнорируют collisionBitMask. –
Я сделал это, и он все еще не работает. – kriskendall99