win32的api实在太麻烦了,但是glView里面有个setCursorVisible的方法,可是借此实现同样的效果。
AppDelegate.cpp中:
glview = GLViewImpl::createWithFullScreen("123465");
glview->setCursorVisible(false);
director->setOpenGLView(glview);
自己的layer中:
//鼠标指针
auto cursor = Sprite::create("cursor_nor.png");
this->_cursor = Node::create();
this->_cursor->addChild(cursor);
this->addChild(this->_cursor,10000);
auto listenerMouse = EventListenerMouse::create();
listenerMouse->onMouseMove = [&](cocos2d::EventMouse* event) {
Point mouse = event->getLocation();
mouse.y = 1024 - mouse.y;
this->_cursor->setPosition(Point(mouse.x+20,mouse.y-30));
};
listenerMouse->onMouseDown = [&](cocos2d::EventMouse* event) {
this->_cursor->removeAllChildren();
auto cursor = Sprite::create("cursor_pre.png");
this->_cursor->addChild(cursor);
};
listenerMouse->onMouseUp = [&](cocos2d::EventMouse* event) {
this->_cursor->removeAllChildren();
auto cursor = Sprite::create("cursor_nor.png");
this->_cursor->addChild(cursor);
};
this->_eventDispatcher->addEventListenerWithFixedPriority(listenerMouse,1);