当鼠标一直处于按下状态时,能否检测到这样的事件

当鼠标一直处于按下状态时,应该如何检测?从而决定是否执行某个动画.

按下时,将按键状态设置为按下,然后在update里判断,这样如果有组合键,也可以判断

1赞

这需要时刻记录鼠标是否处于点击状态,因此在头文件中需要以下这行代码:

std::map<cocos2d::EventKeyboard::KeyCode, bool> keys;

但这个是用于键盘按键记录的,并非是鼠标的点击记录,
如果要用记录鼠标的点击记录应该如何修改?

onTouchBegan

onTouchBegan是手机单点触摸函数,并不是鼠标事件的相关函数,

如何用map来存放鼠标是否处于 onMouseDown或onMouseUp状态,因此需要对以下这行代码进行修改,如何修改:

std::map<cocos2d::EventKeyboard::KeyCode, bool> keys;

键盘输入事件EventKeyboard、点击事件EventTouch、鼠标事件EventMouse在电脑端上这些都是在CCGLViewImpl-desktop.cpp派发的。
看源码你就会知道EventTouch和EventMouse事件大同小异,都是在onGLFWMouseMoveCallBack 一个函数里一同处理的。
你的问题很简单同时监听注册EventListenerKeyboard和EventListenerMouse处理下就完事了。

在头文件中修改如下:

std::map<cocos2d::EventKeyboard::KeyCode, bool> keys;
std::map<cocos2d::EventMouse::Event, bool> mouse;

然后在update函数中为键盘的方向键和鼠标的左键赋值,
键盘方向键的左键赋值如下:

auto leftArrow = EventKeyboard::KeyCode::KEY_LEFT_ARROW,

鼠标左键不知道该如何赋值:

auto leftMouse=EventMouse::Event::

鼠标左键代码后面应该跟上什么?如何修改?