我们常见的安卓项目都有再按一次退出@H_301_5@程序的提示,在cocos2dx中如何实现?
@H_301_5@编译环境cocos2dx 3.3
@H_301_5@vs2013
//创建一个监听按键的函数 auto listener = EventListenerKeyboard::create(); //设置函数的onKeyReleased实现 listener->onKeyReleased = [=](EventKeyboard::KeyCode _keyCode,Event * pEvent) { //把keycode的枚举值转换成int 手机的返回键键值为6 auto x = (int)_keyCode; //这里是测试键值的代码,大家可以忽略 char a[10] = { 0 }; sprintf(a,"%d",x); label->setString(a); //如果点击返回键一次 if (x==6) { //记录点击次数的变量,在头文件内声明并赋值0 keydown++; //如果点击两次则退出游戏 if (keydown==2) { Director::getInstance()->end(); } //否则就显示文字,“再按一次退出” else { auto label1 = Label::createWithTTF("Try again!","fonts/Marker Felt.ttf",24); label1->setPosition(Vec2(200,100)); this->addChild(label1,2); //在给文字加一个消失动画和一个回调函数 //动画消失以后回调函数删除该Node,并把keydown赋值0 //如果动画没有消失而又点击了返回键则直接退出游戏 auto fadeout = FadeOut::create(1.5); label1->runAction(Sequence::create(fadeout,CallFunc::create(CC_CALLBACK_0(HelloWorld::aaaupdate,this,label1)),NULL)); } } }; //添加监听 _eventDispatcher->addEventListenerWithSceneGraPHPriority(listener,this);下面是回调函数的实现:
@H_301_5@
//动画回调函数 void HelloWorld::aaaupdate(Label * l) { keydown = 0; removeChild(l); }
请看实例演示
最后附上下载链接!可以拿去直接放到class文件夹加入文件中
http://download.csdn.net/detail/babylang3/8404379
@H_301_5@