Cocos2d-3.x_触摸事件(单点触摸和多点触摸)

来源:互联网 发布:数控剪板机编程视频 编辑:程序博客网 时间:2024/04/26 22:59
<pre class="cpp" name="code">#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"USING_NS_CC;class HelloWorld : public cocos2d::Layer{public:    static cocos2d::Scene* createScene();    virtual bool init();    CREATE_FUNC(HelloWorld);private:LabelTTF *pLabel;};#endif // __HELLOWORLD_SCENE_H__
#include "HelloWorldScene.h"Scene* HelloWorld::createScene(){    auto scene = Scene::create();    auto layer = HelloWorld::create();    scene->addChild(layer);    return scene;}bool HelloWorld::init(){    if ( !Layer::init() )    {        return false;    }        Size visibleSize = Director::getInstance()->getVisibleSize();    Vec2 origin = Director::getInstance()->getVisibleOrigin();pLabel = LabelTTF::create("HelloWorld", "fonts/Arial.ttf", 30);pLabel->setPosition(visibleSize.width / 2.0, visibleSize.height / 2.0);this->addChild(pLabel);auto listener = EventListenerTouchOneByOne::create();listener->onTouchBegan = [](Touch *t, Event *e){if (e->getCurrentTarget()->getBoundingBox().containsPoint(t->getLocation())){log("onTouchBegan");}// return true;   返回真,可以让触摸回调传递到onTouchMoved和onTouchEnded// return false;   返回假,不可以让触摸回调传递到onTouchMoved和onTouchEndedreturn false;};listener->onTouchMoved = [](Touch *t, Event *e){log("onTouchMoved");};listener->onTouchEnded = [](Touch *t, Event *e){log("onTouchEnded");};Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, pLabel);    return true;}

#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"USING_NS_CC;class HelloWorld : public cocos2d::Layer{public:    static cocos2d::Scene* createScene();    virtual bool init();    CREATE_FUNC(HelloWorld);private:LabelTTF *pLabel;};#endif // __HELLOWORLD_SCENE_H__
#include "HelloWorldScene.h"Scene* HelloWorld::createScene(){    auto scene = Scene::create();    auto layer = HelloWorld::create();    scene->addChild(layer);    return scene;}bool HelloWorld::init(){    if ( !Layer::init() )    {        return false;    }        Size visibleSize = Director::getInstance()->getVisibleSize();    Vec2 origin = Director::getInstance()->getVisibleOrigin();pLabel = LabelTTF::create("HelloWorld", "fonts/Arial.ttf", 30);pLabel->setPosition(visibleSize.width / 2.0, visibleSize.height / 2.0);this->addChild(pLabel);// 开启多点触摸this->setTouchEnabled(true);auto listener = EventListenerTouchAllAtOnce::create();listener->onTouchesBegan = [](std::vector<Touch *> ts, Event *e){log("onTouchesBegan");};listener->onTouchesMoved = [](std::vector<Touch *> ts, Event *e){log("touch is moved, touch's count is %d", ts.size());};listener->onTouchesEnded = [](std::vector<Touch *> ts, Event *e){log("onTouchesEnded");};Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);    return true;}



0 0
原创粉丝点击