为了账号安全,请及时绑定邮箱和手机立即绑定

cocos2d-x中该如何实现键盘的按住事件?

cocos2d-x中该如何实现键盘的按住事件?

回首忆惘然 2019-03-29 22:09:57
键盘的按下或者松开事件都是可以单独检测的,目前代码boolHelloWorld::init(){//省略autolistenerKeyboard=EventListenerKeyboard::create();listenerKeyboard->onKeyPressed=CC_CALLBACK_2(HelloWorld::onKeyPressed,this);listenerKeyboard->onKeyReleased=CC_CALLBACK_2(HelloWorld::onKeyReleased,this);_eventDispatcher->addEventListenerWithSceneGraphPriority(listenerKeyboard,this);//省略voidHelloWorld::onKeyPressed(EventKeyboard::KeyCodekeyCode,Event*event){//省略}差不多这样一个情况,我放置了一个sprite,onKeyPressed里面实现的是按下方向键sprite会向一个方向移动10个单位问题是如果按住方向键的话只有一次onKeyPressed能触发,如果让Sprite保持移动需要不停的按方向键向各位大牛求教,有木有什么方法可以检测到按住或者实现类似的机理?
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

一个简单地笨办法就是:
用一个boolkeyState来记录这个键的按下状态,如果true代表按下否则代表没按下。
然后监听事件:按下的时候设置这个keyState为true,弹起的时候设置为false。那么也就是说如果为true的话,这个键就是处于按下状态。
最后,自己可以实现这么一整套机制,然后弄出一个全局的按键状态表。
至于Cocos2dx原生有没有实现方法,我不知道——因为我不是写Cocos2dx的啊。
希望能够抛砖引玉。
以上。
                            
查看完整回答
反对 回复 2019-03-29
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

你可以在update里面检测这个按键,如果按下就setposition,就能达到你的效果
                            
查看完整回答
反对 回复 2019-03-29
  • 2 回答
  • 0 关注
  • 1194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信