Cocos2dx多点触摸实例
发布时间:2020-12-14 19:56:36 所属栏目:百科 来源:网络整理
导读:bool MyTouchEvent2::init() { if (!Layer::init()) { return false; } Size visibleSize = Director::getInstance()-getVisibleSize(); Vec2 origin = Director::getInstance()-getVisibleOrigin(); /创建3个文本标签 Label * text1 = Label::create("","Ari
bool MyTouchEvent2::init()
{ if (!Layer::init()) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); /创建3个文本标签 Label * text1 = Label::create("","Arial",24); text1->setPosition(Point(400,280)); this->addChild(text1,1,1); Label * text2 = Label::create("",24); text2->setPosition(Point(400,200)); this->addChild(text2,2); Label * text3 = Label::create("",24); text3->setPosition(Point(400,100)); this->addChild(text3,3); //创建多点触摸监听器 auto listener = EventListenerTouchAllAtOnce::create(); //单击 listener->onTouchesBegan = [&](const std::vector<Touch*>& touchs,Event* event) { auto text = (Label *)this->getChildByTag(1); int num = touchs.size(); text->setString(Value(num).asString() + "Touches:"); }; // 移动 listener->onTouchesMoved = [&](const std::vector<Touch*>& touchs,Event* event){ auto text = (Label *)this->getChildByTag(2); int num = touchs.size(); std::string str = Value(num).asString() + "Touches:"; for (auto & touch:touchs) { auto location = touch->getLocation(); str += "[touchID" + Value(touch->getID()).asString() + "]"; } text->setString(str); }; // 松开 listener->onTouchesEnded = [&](const std::vector<Touch*>& touchs,Event* event) { auto text = (Label*)this->getChildByTag(3); int num = touchs.size(); text->setString(Value(num).asString()+"Touches:"); }; //注册监听事件 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,this); return true; }(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |