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
绝对是动态的。
我在做什么错?