cocos2d-x3.9增加触摸事件

今天发现cocos2d-x最新版都已经升到3.9了,升级速度好快啊

创建HelloWorld项目

将下载的压缩包解压到你指定的文件夹里。

进入到目录

cocos2d-x-3.9/tools/cocos2d-console/bin/cocos.py

打开终端运行cocos.py脚本创建文件

./cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop

或者

python cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop

参数说明:

  • HelloWorldDemo为项目名称
  • -p后面接包名
  • -l后面接开发语言类型,有cpp, lua, js三种类型
  • -d后面接项目存放的目录

运行项目

项目创建完成后,用Xcode打开HelloWorldDemo/proj.ios_mac里的Xcode项目文件,运行项目

增加触摸事件

现在3.0以后的修改了以前2.0的版本增加触摸事件的方法,所以就贴个demo

在初始化中定义响应的触摸事件

auto sprite = Sprite::create("HelloWorld.png");
    // position the sprite on the center of the screen
    sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

    // add the sprite as a child to this layer
    this->addChild(sprite, 0);
    
    EventListenerTouchOneByOne *lis = EventListenerTouchOneByOne::create();
    //绑定触摸的方法,onTouchMoved这些一样的,只有绑定了才会调用绑定的方法
    lis->onTouchBegan =CC_CALLBACK_2(HelloWorld::onTouchBegan, this);
    //也可以用这个直接定义方法,不用绑定
//    lis->onTouchBegan=[](Touch *touch, Event *unused_event){
//        CCLOG("ssss");
//        Sprite*s =  static_cast<Sprite*>(unused_event->getCurrentTarget());
//        if (s->getBoundingBox().containsPoint(touch->getLocation())) {
//            CCLOG("mmmm");
//        }
//        return true;
//    };
    //添加监听器到事件分发器中,设置触摸优先级,或者使用下面这个
    Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(lis, 10);
    //这个用场景里面的元素的定义优先级
//    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(lis, sprite);

触摸响应之后的函数

bool HelloWorld::onTouchBegan(Touch *touch, Event *unused_event)
{
    CCLOG("ssss");
    //通过unused_event->getCurrentTarget()来说明你想要让哪个对象响应绑定的函数
    Sprite*s =  static_cast<Sprite*>(unused_event->getCurrentTarget());
    //然后判断你的点击点是否在对象上面来做不同的处理
    if (s->getBoundingBox().containsPoint(touch->getLocation())) {
        CCLOG("mmmm");
    }
    return true;
}

现在是最基础的应用,发现已经和2.0差别好大,虽然不是说重头开始,但是还是要花时间多多研究下啦

参考文章:

  1. Xcode下运行HelloWorld
  2. cocos2d-x 3.0 触摸机制的使用
  3. Cocos2dx 3.0 提高篇(三) 触摸机制
Last modification:January 1st, 1970 at 08:00 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

Leave a Comment