基本上我有地面,球員(雷蒙德)和硬幣。 當玩家接觸地面時不會發生任何事情,遊戲繼續正常進行。當玩家與硬幣接觸時,我想讓它打印以控制「硬幣與玩家的接觸」。雪碧套件接觸檢測
enum ColliderType: UInt32 {
case Raymond = 1
case Object = 2
case Coin = 3
}
Raymonds物理
raymond.physicsBody = SKPhysicsBody(circleOfRadius: raymondTexture.size().height/2)
raymond.physicsBody!.dynamic = true
raymond.physicsBody!.categoryBitMask = ColliderType.Raymond.rawValue
raymond.physicsBody?.contactTestBitMask = ColliderType.Object.rawValue
raymond.physicsBody?.collisionBitMask = ColliderType.Object.rawValue
硬幣物理
coin.physicsBody = SKPhysicsBody(circleOfRadius: raymondTexture.size().height/2)
coin.physicsBody!.dynamic = true
coin.physicsBody!.categoryBitMask = ColliderType.Coin.rawValue
coin.physicsBody?.contactTestBitMask = ColliderType.Raymond.rawValue
coin.physicsBody?.collisionBitMask = ColliderType.Object.rawValue
地面物理,如果你需要
ground.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(self.frame.size.width, 1))
ground.physicsBody!.dynamic = false
ground.physicsBody!.categoryBitMask = ColliderType.Object.rawValue
ground.physicsBody?.contactTestBitMask = ColliderType.Object.rawValue
ground.physicsBody?.collisionBitMask = ColliderType.Object.rawValue
繼承人的接觸功能我有,我知道它錯了,我需要幫助如何檢測硬幣和雷蒙德接觸。
func didBeginContact(contact: SKPhysicsContact) {
print("coin contact with player")
}
在此先感謝。
您可以添加更多的代碼,最好是當你的國家物理 –
@OrenEdrich DONE 。 –
您沒有正確使用位掩碼,3代表00000000000000000000000000000011,這實際上意味着對象和Raym0nd。你需要以2的權力工作,所以下一個可行的數字是4(1,2,4,8,16,32)如果你想讓它可讀,那麼使用(1 << 2)代表你的硬幣(1 << 0)爲你的物體,和(1 << 1)爲你的雷蒙德 – Knight0fDragon