Cocos2d-x3.8.1制作飞翔的小鸟(下)
发表于2018-03-19
在上篇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引擎的碰撞事件以及触摸事件的处理的介绍,相信大家已经能完全掌握这个飞翔的小鸟制作的教程。