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、弹出对话框确认退出。