2016-03-11 3 views
0

У меня есть крыша 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, но затем игрок просто проходит через крышу. Если вы знаете что-нибудь об этом, пожалуйста, оставьте какие-либо рекомендации или предложения ниже. Спасибо

ответ

0

удалить contactTestBitmask если вы не хотите didBeginContact произойти

+0

Я хочу, чтобы связаться произойти, только не между плательщиком и крышей. – Jason