Cocos2dx 3.0rc之单点触屏响应 和 多点触屏响应

来源:互联网 发布:普通话等级考试软件 编辑:程序博客网 时间:2024/06/06 11:47

3.0rc和2.X版本的注册触屏响应时间有点不一样了

//添加一个单点监听auto listener = EventListenerTouchOneByOne::create();//监听的回调函数listener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan, this);listener->onTouchMoved = CC_CALLBACK_2(HelloWorld::onTouchMoved, this);listener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded, this);//添加一个多点监听auto listener2 = EventListenerTouchAllAtOnce::create();listener2->onTouchesBegan = CC_CALLBACK_2(HelloWorld::onTouchesBegan, this);listener2->onTouchesMoved = CC_CALLBACK_2(HelloWorld::onTouchesMoved, this);listener2->onTouchesEnded = CC_CALLBACK_2(HelloWorld::onTouchesEnded, this);//将监听委派到这个layer,并设置优先级auto dispatcher = Director::getInstance()->getEventDispatcher();dispatcher->addEventListenerWithSceneGraphPriority(listener2, this);dispatcher->setPriority(listener2, 1);

单点的回调函数

bool HelloWorld::onTouchBegan(Touch *touch, Event *unused_event){Point point = touch->getLocation();CCLOG("x=%f , y=%f", point.x, point.y);return true;}void HelloWorld::onTouchMoved(Touch *touch, Event *unused_event){//CCLOG("bbb");}void HelloWorld::onTouchEnded(Touch *touch, Event *unused_event){//CCLOG("ccc");}



多点的回调函数

void HelloWorld::onTouchesBegan(const std::vector<Touch*>& touches, cocos2d::Event *unused_event){for (auto &item : touches){auto touch = item;auto location = touch->getLocation();auto sp = Sprite::create("CloseSelected.png");sp->setPosition(location);this->addChild(sp);CCLOG("touched x=%f , y=%f", location.x, location.y);}}void HelloWorld::onTouchesMoved(const std::vector<Touch*>& touches, cocos2d::Event *unused_event){}void HelloWorld::onTouchesEnded(const std::vector<Touch*>& touches, cocos2d::Event *unused_event){}


0 0
原创粉丝点击