//第一步创建物理世界
//第二步设置给物体添加刚体
//第一步创建物理世界
auto scene = Scene::createWithPhysics();(主要)
PhysicsWorld * phyWorld = scene->getPhysicsWorld();(主要)
//设置渲染边框
phyWorld->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
// false,将会取消所用物理事件的功能
phyWorld->setAutoStep(false);
auto layer = HelloWorld::create();
PhysicsBody* body = PhysicsBody::createEdgeBox(layer->getContentSize()*0.9);
layer->setPhysicsBody(body);
scene->addChild(layer);
return scene;
bool HelloWorld::init()
{
if ( !Layer::init() )
{
return false;
}
//第二步设置给物体添加刚体
auto rootNode = CSLoader::createNode("MainScene.csb");
Box = rootNode->getChildByName<Sprite*>("Sprite_1");
Size size = Box->getContentSize();
//createCircle:设置圆形碰撞 createBox:设置方形碰撞
PhysicsBody *boxBodyCircle = PhysicsBody::createCircle(size.width/2);(主要)
boxBodyCircle->addMass(0.1);
//setGravityEnable设置false为反重力
//boxBodyCircle->setGravityEnable(false);
// Box->getPhysicsBody()->applyForce(dir); // 持续力
//Box->getPhysicsBody()->applyImpulse(dir);//冲击力
//Box->getPhysicsBody()->applyTorque(50); //扭矩
PhysicsBody *boxBody = PhysicsBody::createBox(size);(二选一)
//别忘记添加进对象中
Box->setPhysicsBody(boxBodyCircle);(主要)
addChild(rootNode);
return true;
}