Cocos3.0 的android返回键功能实现

前端之家收集整理的这篇文章主要介绍了Cocos3.0 的android返回键功能实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

例如:Game.h Game.cpp

文件Game.h中定义:

  1. void onKeyReleased(EventKeyboard::KeyCode keyCode,Event * pEvent);


Game.cpp文件中实现:

  1. auto listener = EventListenerKeyboard::create(); //和回调函数绑定
  2.  
  3. listener->onKeyReleased = CC_CALLBACK_2(Game::onKeyReleased,this); //添加到事件分发器中
  4.  
  5. Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraPHPriority(listener,this);

//返回键退出

  1. void Game::onKeyReleased(EventKeyboard::KeyCode keyCode,Event * pEvent)
  2. {
  3. Director::getInstance()->end();
  4. }

//注意,此方法支持Android平台下,在windows平台下编译会出现错误,建议用windows平台编译的时候把此方法注销掉。

//上述方法只点击一次返回键既可以退出,如果需要2次退出,可以采用下面这个方法

  1. void Game::onKeyReleased(EventKeyboard::KeyCode keyCode,Event * pEvent)
  2. {
  1. <span style="white-space:pre"> </span>//把keycode的枚举值转换成int 手机的返回键键值为6
  2. <span style="white-space:pre"> </span>auto x = (int)_keyCode;
  3. <span style="white-space:pre"> </span>//如果点击返回键一次
  4. <span style="white-space:pre"> </span>if (x == 6)
  5. <span style="white-space:pre"> </span>{
  6. <span style="white-space:pre"> </span>//记录点击次数的变量,在头文件内声明并赋值0
  7. <span style="white-space:pre"> </span>keydown++;
  8. <span style="white-space:pre"> </span>//如果点击两次则退出游戏
  9. <span style="white-space:pre"> </span>if (keydown == 2)
  10. <span style="white-space:pre"> </span>{
  11. <span style="white-space:pre"> </span>Director::getInstance()->end();
  12. <span style="white-space:pre"> </span>}
  13. <span style="white-space:pre"> </span>//否则就显示文字,“再按一次退出
  14. <span style="white-space:pre"> </span>else
  15. <span style="white-space:pre"> </span>{
  16. <span style="white-space:pre"> </span>//增加的一个精灵图片,就是显示的“再按一次退出游戏”
  17. <span style="white-space:pre"> </span>auto label1 = Sprite::create("again.png");
  18. <span style="white-space:pre"> </span>addChild(label1);
  19. <span style="white-space:pre"> </span>//在给文字加一个消失动画和一个回调函数
  20. <span style="white-space:pre"> </span>//动画消失以后回调函数删除该Node,并把keydown赋值0
  21. <span style="white-space:pre"> </span>//如果动画没有消失而又点击了返回键则直接退出游戏
  22. <span style="white-space:pre"> </span>//两次点击返回键的时间间隔为0.1+1.5=1.6,这个时间可以自己设置
  23. <span style="white-space:pre"> </span>auto fadeout = FadeOut::create(0.1f);
  24. <span style="white-space:pre"> </span>label1->runAction(Sequence::create(DelayTime::create(1.5f),fadeout,CallFunc::create(CC_CALLBACK_0(againExit::oncallback,this,label1)),NULL));
  25. <span style="white-space:pre"> </span>}
  26. <span style="white-space:pre"> </span>}
  27. }

猜你在找的Cocos2d-x相关文章