首页 > 代码库 > cocos2dx-3.2 笔记 - 物理属性
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穿过,将碰撞事件传递给下一个检测回调函数 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。