【cocos2dx】监听安卓机的返回键

本文介绍了如何在cocos2d-x游戏中监听和响应安卓设备的返回键,包括实现'再按一次退出'功能及弹出确认退出对话框的方法。通过覆盖onKeyReleased函数,结合bool变量记录返回键状态,实现不同操作。同时讨论了在弹出对话框时防止误触游戏事件的处理策略。
摘要由CSDN通过智能技术生成

2016-02-19新增-------------------------------------------------------------------------------------------------------------

--quick-cocos2d-x_2.2.6

--返回按键监听
self.layer = display.newLayer()
self.layer:addNodeEventListener(cc.KEYPAD_EVENT, function(event)  
	if event.key == "back" then  
		--self.mainPopup:show("要退出吗", true)
		--再按一次返回键退出
	end  
end)
self.layer:setKeypadEnabled(true)
self:addChild(self.layer)

原文-----------------------------------------------------------------------------------------------------------------------------

(Cocos-2.2.6 & Framework-3.5)

在玩cocos2d-x的时候,每次真机实测,都要按home键来‘退出’游戏,因为没有监听返回键,这让我想起了某个版本的手机QQ,也是没有监听返回键来着。

来简单写一下cocos2d-x监听安卓的返回键。

 

简单的用helloworld项目来实验

首先在.h文件覆盖onKeyReleased函数。

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

在.cpp中init函数里面注册键盘监听

bool HelloWorld::init()
{
//省略一些代码
	auto backKeyListener = EventListenerKeyboard::create();
	backKeyListener->onKeyReleased = CC_CALLBACK_2(HelloWorld::onKeyReleased, this);
	_eventDispatcher->addEventListenerWithSceneGraphPriority(backKeyListener, this);
}

之后捕捉返回键(不排除手机机型问题和引擎版本问题引起keyCode的不同,keyCode请自行真机测试,我这里三星S4的返回键对应KEY_BACK)

void HelloWorld::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event)
{
	if (keyCode == EventKeyboard::KeyCode::KEY_BACK)
	{
		Director::getInstance()->end();
	}
}

好了,很简单。返回键按下立马退出。但是也太简单了,我们比较常见的app或者游戏的返回键监听一般设计成这两种形式:

1、“再按一次返回键退出”。2、弹出对话框确认退出。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值