cocos2dx-3.2 笔记 - 物理属性

PhysicsBody

  添加物理属性,不多废话,直接上代码

        Sprite *land = Sprite::createWithSpriteFrame(pngName);

        PhysicsBody *Landbody = PhysicsBody::create();
        Landbody->addShape(PhysicsShapeBox::create(
            Size(land->getContentSize().width,land->getContentSize().height)
            ,PhysicsMaterial(1,0,1)));
        Landbody->setDynamic(false);//我测试的效果是 是否动态(即给他速度或力,他并不会动)
        Landbody->setLinearDamping(0.0f);//阻力
        Landbody->setGravityEnable(false);//是否受重力
        Landbody->setContactTestBitmask(1);//只要物体的这个至进行与操作后不为零则触发碰撞
        // add the sprite as a child to this layer
        land->setPhysicsBody(Landbody);

 

碰撞检测

        auto contactListener = EventListenerPhysicsContact::create();
        contactListener->onContactBegin = CC_CALLBACK_1(GameLayer::onContactBegin, this);
        this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(contactListener, this);


bool GameLayer::onContactBegin(const PhysicsContact& contact)
{

    return true;//true触发碰撞,false穿过,将碰撞事件传递给下一个检测回调函数   
}

 

posted on 2014-08-22 10:35  Kee_Chen  阅读(396)  评论(0编辑  收藏  举报