Cocos2d-x   发布时间:2022-05-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2d-x学习之---Andorid关于返回键退出的一些小总结大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

好久都没写博客了,今天是2014年的第一天,开个好头吧~~~祝自己和各位辛勤工作的码农们元旦快乐~!

  1. 用Cocos2dx引擎开发游戏的时候,看见同事用过直接调用安卓自带的功能实现返回键退出,这样就非常方便啦,省去了每个界面写退出的代码。

OK,切入正题。公司用的引擎是2.0.4版的,比较老,看同事调用的代码与网上的有点不同,JAVA我也不懂,或许一样也不一定了。。。我用的是2.1.5版的引擎;

因为涉及到的是JAVA代码的调用,所以工具用的是eclipse。

首先随便导入一个项目,现在我导入的是之前模仿写的微信飞机大战的项目,然后导入引擎的库文件(不知道这样说可不可以),将库文件导入到eclipse中就可以省去了每次复制库文件到项目中的操作。

如图所示,新建项目的时候这里是不会默认有库文件的,需要自己去复制一份过来,所以我就把这个库文件也导入进来了。这样以后再新建项目就可以不用去复制库文件了。


在上图这一堆的库文件中,我们需要动的是Cocos2dxGLSurfaceView.java 这个文件,打开文件找到onKeyDown 这个方法,我们需要做的是改其中的一个参数,上代码:

    @Override
  1. publicBooleanonKeyDown(finalintpKeyCode,finalKeyEventpKeyEvent){
  2. switch(pKeyCodE){
  3. caseKeyEvent.KEYCODE_BACK:
  4. //AlertDialogad=newAlertDialog.builder(CrazymolE)
  5. //.settitle("EXIT?")
  6. //.setmessage("Doyoureallywanttoexit?")
  7. //.setPositiveButton("YES",newDialogInterface.onClickListener(){
  8. //publicvoidonClick(DialogInterfacedialog,intwhich){
  9. //((Cocos2dxActivity)CrazymolE).finish();
  10. //}
  11. //})
  12. //.setNegativeButton("NO",newDialogInterface.onClickListener(){
  13. :rgb(153,intwhich){
  14. //
  15. //}
  16. //}).create();
  17. //ad.show();
  18. returnfalse;
这里的操作就是在 KEYCODE_BACK 的按键事件中返回false,引擎默认是返回true,其中注释掉的地方是之前在网上看到的具体的操作,当时我把这些代码放到这里再打包看效果,是无效的,然后在网友告诉我这里只要返回false然后再在自己的工程中再重写这个方法,再把按返回键弹出对话框的代码写进去就可以了。现在这里改好了,之后就转入到自己具体工程相关代码的操作中去。

首先找到:

自己项目的src目录下,自己项目的java文件,即上图中叫做AirPlane.java 的文件,打开,代码如下:

    packagecom.yekong.airplane;
  1. importorg.cocos2dx.lib.Cocos2dxActivity;
  2. importorg.cocos2dx.lib.Cocos2dxGLSurfaceView;
  3. importandroid.os.bundle;
  4. publicclassAirPlaneextendsCocos2dxActivity{
  5. protectedvoidonCreate(BundlesavedInstanceStatE){
  6. super.onCreate(savedInstanceStatE);
  7. }
  8. publicCocos2dxGLSurfaceViewonCreateView(){
  9. Cocos2dxGLSurfaceViewglSurfaceView=newCocos2dxGLSurfaceView(this);
  10. //AirPlaneshouldcreatestencilbuffer
  11. glSurfaceView.setEGLConfigChooser(5,6,0); BACkground-color:inherit">0,0); BACkground-color:inherit">16,0); BACkground-color:inherit">8);
  12. returnglSurfaceView;
  13. static{
  14. System.loadLibrary("cocos2dcpp");
  15. }
这是新建项目后引擎自己创建的东西,可以看到这个Acitivity中是没有之前看到的onKeyDown这个方法的,所以现在我们要重写一个:

    publicBooleanonKeyDown(intkeyCode,KeyEventevent){
  1. //switch(keyCodE){
  2. //caseKeyEvent.KEYCODE_BACK:
  3. //AlertDialog.builderbuild=newAlertDialog.builder(this);
  4. //build.settitle("注意")
  5. //.setmessage("确定要退出吗?")
  6. //.setPositiveButton("确定",0); BACkground-color:inherit">//
  7. //@Override
  8. ////TODOAuto-generatedmethodstub
  9. //finish();
  10. //})
  11. //.setNegativeButton("取消",0); BACkground-color:inherit">//@Override
  12. ////TODOAuto-generatedmethodstub
  13. //.show();
  14. //break;
  15. //default:
  16. //break;
  17. //returnfalse;
  18. if(keyCode==KeyEvent.KEYCODE_BACK){
  19. if((System.currentTimeMillis()-mExitTimE)>2000){//如果两次按键时间间隔大于2000毫秒,则不退出
  20. Toast.makeText(this,"再按一次退出程序",Toast.LENGTH_SHORT).show();
  21. @H_155_17@mExitTime=System.currentTimeMillis();//更新mExitTime
  22. }else{
  23. System.exit(0);//否则退出程序
  24. returntrue;
  25. returnsuper.onKeyDown(keyCode,event);
  26. }
可以看到有两个方式,注释的那个指的是按一次返回键则弹出对话框,而没注释掉的那个指的是按两次返回键退出程序的操作,另外要注意后面那个方式要在这个方法前声明一个变量(不知道JAVA中可不可以这样说):

    privatelong@H_421_18@mExitTime;
重写这个方法之后,项目会报错,具体的原因就是没有导入相关的包,具体的操作eclipse会提示要导入什么包,所以挺方便的。

现在上图看操作:

首先是按两次退出程序:

再是按返回键弹出对话框的那种:

OK ,关于Android返回键退出的具体操作就这样啦。

在网上查相关方面的资料的是,网友们都是贴出具体的操作代码,然后没有说要加在哪里,所以我就折腾了好久才搞好,现在把这个写下来,留给以后看看吧;

再次申明:引擎是2.1.5版的,别的版本或许相关文件的目录会不同,但是具体的代码是这样的


原文地址:http://www.voidcn.com/article/p-pfzezpoz-vm.html

大佬总结

以上是大佬教程为你收集整理的Cocos2d-x学习之---Andorid关于返回键退出的一些小总结全部内容,希望文章能够帮你解决Cocos2d-x学习之---Andorid关于返回键退出的一些小总结所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:andoridcocoscocos2ddx些小关于学习总结返回退出
猜你在找的Cocos2d-x相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap