cocos2dx3.3rc0 是不是能键盘的按下和松开这两个动作,怎么监听某个键的按下状态?我想按住某个键实现sprite的行走,帮帮忙谢谢了
参考TestCpp里NewEventDispatcherTest 例子的话在EventDispatcher->Label receives keyboard
void LabelKeyboardEventTest::onEnter()
{
EventDispatcherTestDemo::onEnter();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
Size size = Director::getInstance()->getVisibleSize();
auto statusLabel = Label::createWithSystemFont("No keyboard event received!", "", 20);
statusLabel->setPosition(origin + Vec2(size.width/2, size.height/2));
addChild(statusLabel);
auto listener = EventListenerKeyboard::create();
listener->onKeyPressed = ](EventKeyboard::KeyCode keyCode, Event* event){
char buf = {0};
sprintf(buf, “Key %d was pressed!”, (int)keyCode);
auto label = static_cast<Label*>(event->getCurrentTarget());
label->setString(buf);
};
listener->onKeyReleased = ](EventKeyboard::KeyCode keyCode, Event* event){
char buf = {0};
sprintf(buf, “Key %d was released!”, (int)keyCode);
auto label = static_cast<Label*>(event->getCurrentTarget());
label->setString(buf);
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, statusLabel);
}
麻烦问下您说的是加红的那两行吧?那个我试了就只会监听按下和松开这两个瞬间的动作,能不能知道某个键是按下的状态还是松开的状态?
你设置一个bool,默认false,按下去时候是true,放开时候设置false,true时候移动,false时候停止不就可以了…逻辑啊…楼主…
恩是这样的,cocos里边没有监听这种状态的函数吗?感觉又得自己写,OK,谢谢了