cocos2d-x搭建物理环境

//第一步创建物理世界

//第二步设置给物体添加刚体

//第一步创建物理世界
	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;
}

猜你喜欢

转载自blog.csdn.net/piyixia/article/details/88746266