Cocos2dxはv3.0からChipmunk2Dに統一されたみたいですが、
物理演算系の資料が少ないので備忘録なにかご指摘などありましたらご連絡ください
GameScene.cpp
scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
物理オブジェクトの対象範囲を可視的に見せてくれます。
非常に便利ですので開発するときはセットしておきましょう
GameScene.cpp
auto material = PHYSICSBODY_MATERIAL_DEFAULT;
material.restitution = 0.0f;
material.friction = 0.0f;
マテリアルの密度、反発係数、摩擦係数を指定出来ます。
auto pWall = PhysicsBody::createBox(wall->getContentSize(), material);
PhysicsBodyはこれ以外にも質量やスピードなどの指定も可能です。
オブジェクトが赤くマスクがかかっているのが、
scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
これの恩恵です。
Spriteは衝突している様に見えるのに動きがへんな場合は衝突判定範囲がSpriteからずれている可能性がありますので、マスクをかけて検証するのが良いでしょう。