Cocos2d-x3.8.1制作飞翔的小鸟(下)

发表于2018-03-19
评论0 1.9k浏览
在上篇Cocos2d-x3.8.1制作飞翔的小鸟(上)中和大家介绍了飞翔的小鸟是怎么创建物理场景的,接下来就和大家介绍下在制作飞翔的小鸟案例中cocos2d-x引擎的碰撞事件以及触摸事件的处理。

在playGameScene.cpp文件中的init()函数添加以下代码
auto hitEvent=EventListenerPhysicsContact::create();
hitEvent->onContactBegin=[this](PhysicsContact& contact)
{
        //关闭定时器
this->unschedule(schedule_selector(playGameScene::addBlocks,this));
this->unscheduleUpdate();
obstaclesBlock::Blocks->empty();//容器置空
this->removeAllChildren();
Director::getInstance()->replaceScene(TransitionMoveInB::create(0.2f,gameOverScene::createScene()));
return true;
};
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(hitEvent,this);

触摸时间处理
auto touchEvent=EventListenerTouchOneByOne::create();
touchEvent->onTouchBegan=[this](Touch* touch,Event* event)
{
m_heroBird->runJump();
return true;
};
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(touchEvent,this);

在heroBird.cpp加入jump()函数
void heroBird::runJump()
{   
     //给PhysicsBody一个向上的物理速度
this->getPhysicsBody()->setVelocity(Vec2(0,350));
}
对于cocos2d-x引擎的碰撞事件以及触摸事件的处理的介绍,相信大家已经能完全掌握这个飞翔的小鸟制作的教程。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引