cocos2dx android back键关闭游戏的方法

第一种方法:直接继承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 entered
		if (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);





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值