2015-04-12 19 views
0

好的,所以我的精靈節點savior需要是靜態的,以便當它與我的其他節點chicken1相沖突時,它不會翻轉或顛倒。它需要保持正確的一面。Swift:即使在動態設置爲false之後,spritenode在碰撞期間仍然是動態的?

我設置savior這裏:

var saviorTexture = SKTexture(imageNamed: "1.png") 
     saviorTexture.filteringMode = SKTextureFilteringMode.Nearest 

     savior = SKSpriteNode(texture: saviorTexture) 
     savior.setScale(0.2) 
     savior.position = CGPoint(x: self.frame.size.width * 0.5, y: self.frame.size.height * 0.2) 
//Savior physics 

    savior.physicsBody?.allowsRotation = false 
    savior.physicsBody?.dynamic = false 
    savior.physicsBody?.affectedByGravity = false 
    savior.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(savior.size.width, savior.size.height)) 

    savior.physicsBody?.categoryBitMask = ColliderType.Savior.toRaw() 
    savior.physicsBody?.contactTestBitMask = ColliderType.Chicken1.toRaw() 
    savior.physicsBody?.collisionBitMask = ColliderType.Chicken1.toRaw() 


    self.addChild(savior) 

正如你所看到的,我有allowsRotation設置爲false,dynamic設置爲false,然而旋轉仍然被允許的,節點仍然是動態的。

另外,當我打開查看物理實體時,我的其他2個靜態節點具有綠色物理實體,而savior具有深藍色物理實體,導致我相信綠色代表靜態,藍色代表動態實體。這使得savior絕對是動態的。

我在做什麼錯?

回答

1

在您實際聲明之前,您正在設置物理主體屬性。首先聲明它像你已經做

savior.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(savior.size.width, savior.size.height)) 

然後設置所有的屬性。

相關問題