加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx实现简单卡牌翻转效果

发布时间:2020-12-14 17:08:31 所属栏目:百科 来源:网络整理
导读:将两张图片放入图层,将其中一个图片x的比例设置为0,即隐藏起来。 分别给两个图片绑定点击监听事件,事件触发后执行缩放动作。将自身x比例设置为0,完成后将另一张图片x比例设置为1。 详见代码注释。 bool HelloWorld ::init(){ ////// ////// ////// /////

将两张图片放入图层,将其中一个图片x的比例设置为0,即隐藏起来。
分别给两个图片绑定点击监听事件,事件触发后执行缩放动作。将自身x比例设置为0,完成后将另一张图片x比例设置为1。
详见代码注释。

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }

    auto visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    //使用两张图片分别创建精灵
    auto logo1 = Sprite::create("up.jpg");
    auto logo2 = Sprite::create("down.jpg");
    //设置居中
    logo1->setPosition(visibleSize/2);
    logo2->setPosition(visibleSize/2);
    //将第二张图片x轴缩放至隐藏
    logo2->setScale(0,1);
    //加入图层
    addChild(logo1);
    addChild(logo2);

    //创建监听器
    auto touchListener1 = EventListenerTouchOneByOne::create();
    //设置点击事件
    touchListener1->onTouchBegan = [logo1,logo2](Touch* touch,Event* event){
    //判断点击位置是否在精灵显示范围内
        if(event->getCurrentTarget()->getBoundingBox().containsPoint( touch->getLocation())) { //执行缩放动作 auto move1 = ScaleTo::create(1,0,1); auto move2 = ScaleTo::create(1,1,1); logo1->runAction(move1);
            logo2->runAction(move2);
        }
        return false;
    };
    //同上
    auto touchListener2 = EventListenerTouchOneByOne::create();
    touchListener2->onTouchBegan = [logo1,Event* event){
        if(event->getCurrentTarget()->getBoundingBox().containsPoint( touch->getLocation())) { auto move1 = ScaleTo::create(1,1); logo2->runAction(move1);
            logo1->runAction(move2);
        }
        return false;
    };

    //分别将两个监听器与两个精灵绑定
    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(touchListener1,logo1);
    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(touchListener2,logo2);

    return true;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读