Cocos2d-x Physics 3 - 掉落的头像

添加一个精灵, 让它从高处落下

boolHelloWorld::init()

{

    //////////////////////////////

    // 1. super init first

    if ( !Layer::init() )

    {

        return false;

    }

    

#if CC_ENABLE_BOX2D_INTEGRATION

    log("启用了Box2d");

#endif

    

    Size visibleSize = Director::getInstance()->getVisibleSize();

    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    

    

    //创建一个精灵

    auto sprite = Sprite::create("Icon-58.png");

    //创建一个刚体

    auto spriteBody = PhysicsBody::createBox(sprite->getContentSize(), PHYSICSBODY_MATERIAL_DEFAULT);

    //将刚体赋值给精灵, 这时精灵就具备了物理特性

    sprite->setPhysicsBody(spriteBody);

    //设置精灵的位置

    sprite->setPosition(visibleSize.width/2, visibleSize.height/3*2);

    //将精灵添加到层

    this->addChild(sprite);

    

    this->addChild(sprite);

 

...

}

 

createBox方法有三个参数, 依次是:

1. 矩形区域的大小

2. 设置材质

3. 边线宽度

 

精灵的材质也是使用了预设的PHYSICS_MATERIAL_DEFAUTL实例

 

运行结果可以看到屏幕有一个精灵从高度由慢到快落下, 碰到底部还会反弹

 

2014 11 08 16 17 33

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

自定义PhysicsMaterial类的值

auto spriteBody = PhysicsBody::createBox(sprite->getContentSize(), PhysicsMaterial(0.0f, 1.2f, 0.2f));

 

密度 = 0.0f

恢复力 = 1.2f

摩擦力 = 0.2f

 

重新运行, 精灵落到底部弹得更高了

 

 

 

posted on 2014-11-08 16:27  <懒洋洋>  阅读(178)  评论(0编辑  收藏  举报