1

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.

Eric Aya
  • 69,473
  • 35
  • 181
  • 253
Sipa
  • 383
  • 1
  • 13

0 Answers0