加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

quick-cocos2d-x游戏开发【12】——硬件按键事件

发布时间:2020-12-14 21:08:42 所属栏目:百科 来源:网络整理
导读:在quick中,对于按键事件也进行了重新封装,和node的触摸事件一样,也是通过addNodeEventListener来实现。所谓按键事件,主要是针对于android设备中的返回键“back”和菜单键“menu”的响应,在前面的一篇博文中我也简单提过一次,不过咱们还是系统性的来学

在quick中,对于按键事件也进行了重新封装,和node的触摸事件一样,也是通过addNodeEventListener来实现。所谓按键事件,主要是针对于android设备中的返回键“back”和菜单键“menu”的响应,在前面的一篇博文中我也简单提过一次,不过咱们还是系统性的来学习一下。


首先清楚预定义的层事件有两个,

  • cc.ACCELERATE_EVENT - 重力感应事件
  • cc.KEYPAD_EVENT - 硬件按键事件
触摸事件属于预定义节点事件,有这么几个,

  • cc.NODE_EVENT - enter,exit 等事件
  • cc.NODE_ENTER_FRAME_EVENT - 帧事件
  • cc.NODE_TOUCH_EVENT - 触摸事件
  • cc.NODE_TOUCH_CAPTURE_EVENT - 捕获触摸事件

要实现一个按键响应事件主要就两步,

1.打开键盘功能setKeypadEnabled(true)

2.添加事件监听addNodeEventListener


例如这样写,

[html] view plain copy
  1. locallayer=display.newLayer()
  2. self:addChild(layer)
  3. layer:setKeypadEnabled(true)
  4. layer:addNodeEventListener(cc.KEYPAD_EVENT,function(event)
  5. --dothings
  6. end)

回调函数中event参数只有一个字段“key”,可以判断获取key是back还是menu,

这样一来,按键事件就算掌握了,使用device类提供的对话框咱们来测试下,当然这个最好是真机测试了,

copy
    functionMyScene:ctor()
  1. locallayer=display.newLayer()
  2. ifevent.key=="back"then
  3. print("back")
  4. device.showAlert("ConfirmExit","Areyousureexitgame?",{"YES","NO"},function(event)
  5. ifevent.buttonIndex==1then
  6. CCDirector:sharedDirector():endToLua()
  7. else
  8. device.cancelAlert()
  9. end
  10. end)
  11. elseifevent.key=="menu"then
  12. print("menu")
  13. end
  14. end)
  15. end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读