比如:Game.h   Game.cpp

头文件Game.h中定义:

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

Game.cpp文件里实现:

auto listener = EventListenerKeyboard::create(); //和回调函数绑定 

listener->onKeyReleased = CC_CALLBACK_2(Game::onKeyReleased,this); //加入到事件分发器中 

Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this); 

//返回键退出

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

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

//上述方法仅仅点击一次返回键既能够退出。假设须要2次退出,能够採用以下这种方法:

void Game::onKeyReleased(EventKeyboard::KeyCode keyCode,Event * pEvent)
<span style="white-space:pre">	</span>//把keycode的枚举值转换成int 手机的返回键键值为6
<span style="white-space:pre"> </span>auto x = (int)_keyCode;
<span style="white-space:pre"> </span>//假设点击返回键一次
<span style="white-space:pre"> </span>if (x == 6)
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>//记录点击次数的变量,在头文件内声明并赋值0
<span style="white-space:pre"> </span>keydown++;
<span style="white-space:pre"> </span>//假设点击两次则退出游戏
<span style="white-space:pre"> </span>if (keydown == 2)
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>Director::getInstance()->end();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>//否则就显示文字。“再按一次退出”
<span style="white-space:pre"> </span>else
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>//添加的一个精灵图片。就是显示的“再按一次退出游戏”
<span style="white-space:pre"> </span>auto label1 = Sprite::create("again.png");
<span style="white-space:pre"> </span>addChild(label1);
<span style="white-space:pre"> </span>//在给文字加一个消失动画和一个回调函数
<span style="white-space:pre"> </span>//动画消失以后回调函数删除该Node,并把keydown赋值0
<span style="white-space:pre"> </span>//假设动画没有消失而又点击了返回键则直接退出游戏
<span style="white-space:pre"> </span>//两次点击返回键的时间间隔为0.1+1.5=1.6,这个时间能够自己设置
<span style="white-space:pre"> </span>auto fadeout = FadeOut::create(0.1f);
<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));
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
}

Cocos3.0 的android返回键功能实现的更多相关文章

  1. quick-cocos2d-x android返回键监听并实现原生退出对话框

    这两天最终闲了一下,就顺手又把quick捡起来又学了学,一直都认为quick比cocos2dx那套lua绑定要方便很多,今天试了下android返回键的监听,还是挺好弄的,所以就有了这篇. 首先说明一 ...

  2. Html5 监听拦截Android返回键方法详解

    浏览器窗口有一个history对象,用来保存浏览历史. 如果当前窗口先后访问了三个网址,那么history对象就包括三项,history.length属性等于3. history对象提供了一系列方法, ...

  3. vue 定义全局函数,监听android返回键事件

    vue 定义全局函数,监听android返回键事件 方法一:main.js 注入(1)在main.js中写入函数Vue.prototype.changeData = function (){ aler ...

  4. ionic监听android返回键(实现“再按一次退出”功能)

    在android平台上的app,在主页面时经常会遇到"再按一次退出app"的功能,避免只按一下返回键就退出app提升体验优化. 1.这个功能需要我们用到ionic提供的regist ...

  5. Android 返回键的处理

    多网友不明确怎样在Android平台上捕获Back键的事件.Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台.而回到桌面的尴尬情况,在Android上有两种方法来获取该 ...

  6. Android返回键

    感谢大佬:https://www.cnblogs.com/qiluboy/p/5308310.html Android中back键和home键的区别: back键 Android的程序无需刻意的去退出 ...

  7. android 返回键 操作

    cocos2dx项目移植到android平台上对于 android手机返回键,主菜单键等键的相关操作,本篇详细对返回键做个简单的介绍说明, 不足不对之处,请同猿们指出. 首先在主activity下,即 ...

  8. Android 返回键双击退出程序

    /** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == K ...

  9. ionic android返回键

    每次点击返回键只会执行一个事件, 在自定义事件中要控制条件不满足时实行原默认动作. 如果只在一个view中监控, 还需要及时注销事件. http://www.jianshu.com/p/b567cc6 ...

随机推荐

  1. 练oj时的小技巧(大多都在oj记录里,这是被忘记的部分)

    1. getline()函数,头文件为#include<string> getline(istream &in, string &s):从输入流读入一行到string s ...

  2. Android中为你的应用程序添加桌面快捷方式

    public void ShortCut(View view){ createDeskShortCut(this,getString(R.string.short_cut),R.drawable.up ...

  3. 爪哇国新游记之一----第一个类Cube

    将这个类作为Java学习的第一个类,简单易懂易上手. /** * 正方体类 */ public class Cube { private int length;// 正方体边长 private sta ...

  4. PortableApps的使用方法

    1 从官方网站下载这个软件,建议只下载PortableApps Platform Only即可,因为官方提供的软件其实很少,大多数需要我们自己添加. PortableApps 致力于将一些常见的开源软 ...

  5. 重载&lt;&lt;和&gt;&gt;

    在C++编程中实现数据的输入/输出能够用cin>>ch/cout<<ch; 可是使用cin>>ch或cout<<ch并不能实现一些特殊的数据的输入或者输 ...

  6. iOS APP 上传

    原地址:http://www.cnblogs.com/uvsjoh/archive/2012/11/14/2769739.html 流程:1 开发好要发布的程序 -- 需要在程序中包含符合要求规格的i ...

  7. ECS 实例网络带宽

    1. 带宽是否独享? 是独享. 2. 带宽单线还是双线,电信还是网通? 多线 BGP(中国电信.联通.移动.教育网等)接入,确保全国用户访问畅通. 3. 5 Mbps 带宽怎么理解? 5 Mbps 带 ...

  8. JavaScript-常用正则函数(适合忘记时看)

    test:测试string是否包含有匹配结果,包含返回true,不包含返回false. <script type="text/javascript"> var str ...

  9. Linux日知录(常用问题笔记)

    http://blog.csdn.net/yizhu2000/article/details/70688420)序言 日有一知,当有一录,自09年来,工作所需,接触开源平台,对Linux常有涉猎,其间 ...

  10. 表格行与行的间距设置,通过margin无效,要这么设置

    CSS border-collapse 属性设置表格的边框是否被合并为一个单一的边框 值 描述 separate 默认值.边框会被分开.不会忽略 border-spacing 和 empty-cell ...