I have am trying to stop the moving man when it hit with a plane but it is not stopping as it pass away from plane.According to apple documentation i apply simple shape as capsule to moving man and also setup collisions category but it is not working.Anybody help me please... Here is my code
//Following SceneKit fox example make my character shape
node = SCNNode()
characterScene = SCNScene(named: "game.scnassets/Logan.dae")!
characterNode = characterScene.rootNode.childNodeWithName("Logan", recursively: true)!
node.addChildNode(characterNode)
let (min, max) = node.boundingBox
let collisionCapsuleRadius = CGFloat(max.x - min.x) * 0.4
let collisionCapsuleHeight = CGFloat(max.y - min.y)
let characterCollisionNode = SCNNode()
characterCollisionNode.name = "Logan"
characterCollisionNode.position = SCNVector3(0.0, collisionCapsuleHeight * 0.51, 0.0)
characterCollisionNode.physicsBody = SCNPhysicsBody(type: .Kinematic, shape:SCNPhysicsShape(geometry: SCNCapsule(capRadius: collisionCapsuleRadius, height: collisionCapsuleHeight), options:nil))
characterCollisionNode.physicsBody!.contactTestBitMask = collisionHero | collsionTarget
node.addChildNode(characterCollisionNode)
Here is code for a plane:
let plane = SCNPlane(width:20.0,height:20.0)
var planeNode = SCNNode(geometry: plane)
planeNode.position = SCNVector3(4.0,0.0,-5.0)
planeNode.physicsBody = SCNPhysicsBody.staticBody()
planeNode.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.Static,
shape: SCNPhysicsShape(geometry: plane, options: nil))
characterNode.physicsBody?.contactTestBitMask = collisionHero | collsionTarget
characterNode.physicsBody?.categoryBitMask = collisionHero
characterNode.physicsBody?.collisionBitMask = collsionTarget
planeNode.physicsBody?.contactTestBitMask = collsionTarget
planeNode.physicsBody?.categoryBitMask = collsionTarget
planeNode.physicsBody?.collisionBitMask = collisionHero
Can some one please point out me where is my mistake in code?
Thanks.