cocos2d 扑克发牌动画

4 篇文章 0 订阅
1 篇文章 0 订阅

参考文章出处:http://blog.csdn.net/mofiu/article/details/78751138

    cocos2d::Sprite * sp_list[12];
    cocos2d::Sprite* action_poker[48];
    cocos2d::Sprite *m_dispatch_act = cocos2d::create();
    m_dispatch_act->setVisible(true);
    this->addChild(m_dispatch_act);

    //Init
    for (int i = 0; i < 48; ++i)
    {
        action_poker[i] = cocos2d::Sprite::create("poker.png");
        action_poker[i]->setPosition(0, 30);
        action_poker[i]->setRotation(0);
        action_poker[i]->setVisible(true);
        m_dispatch_act->addChild(action_poker[i]);
    }

    //Callback
    cocos2d::CallFunc * callbak = cocos2d::CallFunc::create(
        [&] {
        for (int i = 0; i < 48; ++i)
        {
            action_poker[i]->setVisible(false);
        }

        for (int i = 0; i < 12; ++i)
        {
            auto card = sp_list[i];
            card->setVisible(true);
            card->setPosition(0, -200);
            card->setRotation(0);
            card->setScale(1.2);
            card->setTexture("poker_new.png");
            Action* seq = Sequence::create(DelayTime::create(0.05), MoveTo::create(0.15f, cocos2d::Point(-360 + i * 60, -200)), NULL);
            card->stopAllActions();
            card->runAction(seq);
        }
    });

    int p0 = 0;
    for (int i = 0; i < 48; ++i)
    {
        Action * seq = nullptr;
        float px = 0.0f, py = 0.9f;
        switch (i%4)
        {
        case 0: { sp_list[p0++] = action_poker[i]; px = 0.0f; py = -200.0f; break; }
        case 1: { px = 400.0f; py = 0.0f; break; }
        case 2: { px = 0.0f; py = 250.0f; break; }
        case 3: { px = -400.0f; py = 0.0f; break; }
        }

        seq = Sequence::create(DelayTime::create(i*0.05), MoveTo::create(0.1, cocos2d::Point(px, py)),
            (i == 47) ? callbak : nullptr, NULL);
        action_poker[i]->stopAllActions();
        action_poker[i]->runAction(seq);
    }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值