J'essaie de créer un jeu de test 3D pour l'iPhone, mais je suis coincé avec la physique. Lorsque la voiture et l'ambulance entrent en contact, la voiture ne disparaît pas? J'ai déjà travaillé avec SpriteKit et je sais que je devais configurer le ContactDelegate de PhysicsWorld mais je ne sais pas comment le faire dans SceneKit, c'est peut-être le problème?SceneKit Physics Contact
code:
ambulance.physicsBody?.categoryBitMask = PhysicsCategory.ambulance
ambulance.physicsBody?.contactTestBitMask = PhysicsCategory.car
car.physicsBody?.categoryBitMask = PhysicsCategory.car
func physicsWorld(_ world: SCNPhysicsWorld, didBegin contact: SCNPhysicsContact) {
let firstNode = contact.nodeA
let secondNode = contact.nodeB
if(firstNode.physicsBody?.categoryBitMask == PhysicsCategory.ambulance && secondNode.physicsBody?.categoryBitMask == PhysicsCategory.car ||
firstNode.physicsBody?.categoryBitMask == PhysicsCategory.car && secondNode.physicsBody?.categoryBitMask == PhysicsCategory.ambulance){
firstNode.physicsBody?.categoryBitMask = PhysicsCategory.ambulance
secondNode.physicsBody?.categoryBitMask = PhysicsCategory.car
secondNode.removeFromParentNode()
}
}
J'espère que quelqu'un peut me aider! Merci!
EDIT: J'ai trouvé comment régler le contactDelegate de la scène à l'auto:
scene.physicsWorld.contactDelegate = self