Cocos2d-x学习之---Andorid关于返回键退出的一些小总结
来源:互联网 发布:域名查ip地址 编辑:程序博客网 时间:2024/05/17 03:08
好久都没写博客了,今天是2014年的第一天,开个好头吧~~~祝自己和各位辛勤工作的码农们元旦快乐~!
- 用Cocos2dx引擎开发游戏的时候,看见同事用过直接调用安卓自带的功能实现返回键退出,这样就非常方便啦,省去了每个界面写退出的代码。
OK,切入正题。公司用的引擎是2.0.4版的,比较老,看同事调用的代码与网上的有点不同,JAVA我也不懂,或许一样也不一定了。。。我用的是2.1.5版的引擎;
因为涉及到的是JAVA代码的调用,所以工具用的是eclipse。
首先随便导入一个项目,现在我导入的是之前模仿写的微信飞机大战的项目,然后导入引擎的库文件(不知道这样说可不可以),将库文件导入到eclipse中就可以省去了每次复制库文件到项目中的操作。
如图所示,新建项目的时候这里是不会默认有库文件的,需要自己去复制一份过来,所以我就把这个库文件也导入进来了。这样以后再新建项目就可以不用去复制库文件了。
在上图这一堆的库文件中,我们需要动的是 Cocos2dxGLSurfaceView.java 这个文件,打开文件找到onKeyDown 这个方法,我们需要做的是改其中的一个参数,上代码:
- @Override
- public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) {
- switch (pKeyCode) {
- case KeyEvent.KEYCODE_BACK:
- // AlertDialog ad = new AlertDialog.Builder(CrazyMole)
- // .setTitle("EXIT?")
- // .setMessage("Do you really want to exit?")
- // .setPositiveButton("YES", new DialogInterface.OnClickListener() {
- // public void onClick(DialogInterface dialog, int which) {
- // ((Cocos2dxActivity)CrazyMole).finish();
- // }
- // })
- // .setNegativeButton("NO", new DialogInterface.OnClickListener() {
- // public void onClick(DialogInterface dialog, int which) {
- //
- // }
- // }).create();
- // ad.show();
- return false;
首先找到:
自己项目的src目录下,自己项目的java文件,即上图中叫做AirPlane.java 的文件,打开,代码如下:
- package com.yekong.airplane;
- import org.cocos2dx.lib.Cocos2dxActivity;
- import org.cocos2dx.lib.Cocos2dxGLSurfaceView;
- import android.os.Bundle;
- public class AirPlane extends Cocos2dxActivity{
- protected void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- }
- public Cocos2dxGLSurfaceView onCreateView() {
- Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
- // AirPlane should create stencil buffer
- glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);
- return glSurfaceView;
- }
- static {
- System.loadLibrary("cocos2dcpp");
- }
- }
- public boolean onKeyDown(int keyCode, KeyEvent event){
- // switch (keyCode) {
- // case KeyEvent.KEYCODE_BACK:
- // AlertDialog.Builder build=new AlertDialog.Builder(this);
- // build.setTitle("注意")
- // .setMessage("确定要退出吗?")
- // .setPositiveButton("确定", new DialogInterface.OnClickListener() {
- //
- // @Override
- // public void onClick(DialogInterface dialog, int which) {
- // // TODO Auto-generated method stub
- // finish();
- //
- // }
- // })
- // .setNegativeButton("取消", new DialogInterface.OnClickListener() {
- //
- // @Override
- // public void onClick(DialogInterface dialog, int which) {
- // // TODO Auto-generated method stub
- //
- // }
- // })
- // .show();
- // break;
- //
- // default:
- // break;
- // }
- // return false;
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- if ((System.currentTimeMillis() - mExitTime) > 2000) {// 如果两次按键时间间隔大于2000毫秒,则不退出
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
- mExitTime = System.currentTimeMillis();// 更新mExitTime
- } else {
- System.exit(0);// 否则退出程序
- }
- return true;
- }
- return super.onKeyDown(keyCode, event);
- }
- private long mExitTime;
现在上图看操作:
首先是按两次退出程序:
再是按返回键弹出对话框的那种:
OK ,关于Android返回键退出的具体操作就这样啦。
在网上查相关方面的资料的是,网友们都是贴出具体的操作代码,然后没有说要加在哪里,所以我就折腾了好久才搞好,现在把这个写下来,留给以后看看吧;
再次申明:引擎是2.1.5版的,别的版本或许相关文件的目录会不同,但是具体的代码是这样的。
原文地址:http://blog.csdn.net/zh379835552/article/details/17732403
- Cocos2d-x学习之---Andorid关于返回键退出的一些小总结
- Cocos2d-x学习之---Andorid关于返回键退出的一些小总结
- Cocos2d-x学习之---Andorid关于返回键退出的一些小总结
- cocos2d-x 3.2 实现 Andorid “请再按一次退出游戏”,双击返回键退出游戏
- cocos2d-x 3.2 实现 Andorid “请再按一次退出游戏”,双击返回键退出游戏
- Cocos2d-x学习之---关于一些宏
- cocos2d-x 3.2 android返回键退出
- 关于cocos2d-x编程的一些小技巧
- andorid cocos2d 游戏开发入门学习经验之总结
- Cocos2d-x 3.0的一些小变化
- cocos2d-x关于属性的一些宏
- 关于cocos2d-x的一些问题
- 一些cocos2d-x开发的知识点总结
- cocos2d-x学习总结之schedule的局限性
- Cocos2d-x学习之---关于CCScrollView
- 【Cocos2d-x 3.0学习笔记】菜单的进入和退出
- 【amazing cocos2d-x 3.0之二】一些小变化
- Cocos2d-x android使用onKeyDown监听返回键实现二次返回退出
- 彩色图像--色彩空间 CIELAB、CIELUV
- ndk开发中的Android.mk文件与Application.mk详解及实例
- CentOS下的用户和用户组管理(上)
- Sicily 1136. 山海经
- 整形数的数字求和
- Cocos2d-x学习之---Andorid关于返回键退出的一些小总结
- 将VBA操作封装为DLL组件并在EXCEL中调用
- SharePoint 2013 开启 Cookie
- Android Studio之Activity切换动画(三)
- 求n的k次方
- ios 字符串和数字互相转化
- 归并排序
- 关于Double.MIN_VALUE和Integer.MIN_VALUE
- 单独java 程序连接Mysql数据库