cocos2dx android back键关闭游戏的方法

来源:互联网 发布:windows清理助手3 编辑:程序博客网 时间:2024/04/29 11:14

第一种方法:直接继承android系统函数,调用之后杀死游戏进程。

修改src目录下,工程文件.java文件 

修改之前:

public class eoeFlappyBird extends Cocos2dxActivity{    protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);}    public Cocos2dxGLSurfaceView onCreateView() {    Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);    // eoeFlappyBird should create stencil buffer    glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);        return glSurfaceView;    }    static {        System.loadLibrary("cocos2dcpp");    }     }


修改之后:

public class eoeFlappyBird extends Cocos2dxActivity{    protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);}    public Cocos2dxGLSurfaceView onCreateView() {    Cocos2dxGLSurfaceView glSurfaceView = new backgame(this); //此处修改    // eoeFlappyBird should create stencil buffer    glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);        return glSurfaceView;    }      //此处修改     public Cocos2dxGLSurfaceView onCreateGLSurfaceView() {return new backgame(this);}        static {        System.loadLibrary("cocos2dcpp");    }     }//添加继承类class backgame extends Cocos2dxGLSurfaceView {public backgame(Context context) {super(context);}public boolean onKeyDown(int keyCode, KeyEvent event) {// exit program when key back is enteredif (keyCode == KeyEvent.KEYCODE_BACK) {new AlertDialog.Builder(getContext()).setTitle(R.string.app_title) //R.string.app_title 是在 res目录中 string.xml配置的   <string name="app_title">提示</string> 不能重名.setMessage(R.string.quitContext).setPositiveButton(R.string.yes,new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog,int which) {android.os.Process.killProcess(android.os.Process.myPid());}}).setNegativeButton(R.string.no, null).show();}return super.onKeyDown(keyCode, event);}}

第二种方法:

1. 在需要响应的.h 中添加如下两个虚函数:virtual void keyBackClicked();//Android 返回键virtual void keyMenuClicked();//Android 菜单键2. .cpp类中实现如上两个函数即可,如下,void HelloWorld::keyBackClicked(){CCLOG("back btn is  clicked");CCMessageBox("backbtn", "backbtn");CCDirector::sharedDirector()->end();}void HelloWorld::keyMenuClicked(){CCLOG("menu btn is  clicked");CCMessageBox("menubtn", "menubtn");}   3.初始化的时候记得开启: this->setKeypadEnabled(true);





0 0
原创粉丝点击