У меня есть крыша Sprite Node, которую я бы хотел, чтобы игрок Sprite Node отскакивал, но когда они касаются, он запускает мою функцию столкновения. крыши и физика плеер категория:У меня есть 2 тела в быстром, что, когда сталкиваешься, я хочу отскочить друг от друга, Как я могу сделать это возможным, чтобы он не ощутил столкновения?
struct PhysicsCatagory {
static let Player : UInt32 = 0x1 << 1
static let Roof : UInt32 = 0x1 << 6
}
игрока и код крыши:
Player = SKSpriteNode(imageNamed: "plane")
Player.size = CGSize(width: 60, height: 70)
Player.physicsBody = SKPhysicsBody(rectangleOfSize: Player.size)
Player.position = CGPoint(x: self.frame.width/2 - Player.frame.width, y: self.frame.width/2)
Player.physicsBody?.categoryBitMask = PhysicsCatagory.Player
Player.physicsBody?.collisionBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Mine | PhysicsCatagory.Ep | PhysicsCatagory.Bullet
Player.physicsBody?.contactTestBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Mine | PhysicsCatagory.Ep | PhysicsCatagory.Bullet
Player.physicsBody?.affectedByGravity = false
Player.physicsBody?.dynamic = false
Player.zPosition = 4
Roof.size = CGSize(width: self.frame.width, height: 40)
Roof.physicsBody = SKPhysicsBody(rectangleOfSize: Roof.size)
Roof.position = CGPoint(x: self.frame.width/2, y: self.frame.height - 20)
Roof.physicsBody?.categoryBitMask = PhysicsCatagory.Roof
Roof.physicsBody?.affectedByGravity = false
Roof.physicsBody?.dynamic = false
Roof.zPosition = 4
И вот мой код, когда происходит столкновение:
func didBeginContact(contact: SKPhysicsContact) {
game = false
end = true
soundy = false
self.removeAllChildren()
self.removeAllActions()
endScreen()
}
I попытались изменить свою идентичность на 0, но затем игрок просто проходит через крышу. Если вы знаете что-нибудь об этом, пожалуйста, оставьте какие-либо рекомендации или предложения ниже. Спасибо
Я хочу, чтобы связаться произойти, только не между плательщиком и крышей. – Jason