cocos2dx3.2 实现splash屏幕图片秀滚动

嘿,秀一下效果图:


让这四张美女图片,循环的向上滚动,那么如何做的呢?

首先准备四张图片分别命名:

Beauty1,Beauty2, Beauty3,Beauty4

然后在Splash类中添加_vcSprites,用来保存精灵


class SplashScene : public cocos2d::Scene

{

public:

    CREATE_FUNC(SplashScene);

    virtual bool init();

    virtual void update(float dt);    

    void playerAction();

    void beginGame();

private:

    SplashScene();

    virtual ~SplashScene();

    Vector<Sprite*> _vcSprites;

    int  _index;

    

};


 在init中将精灵创建,并push到 _vcSprites

this->schedule(schedule_selector(SplashScene::update));

    for (int j = 0; j < 2; ++j) //两分同样的精灵

    {

        for (int i = 0; i < 4; ++i) 

        {

            auto fileName = String::createWithFormat("Beauty%d.png", i + 1);

            

            auto sp = Sprite::create(fileName->getCString());

            sp->setAnchorPoint(Vec2(0.5f, 1.0f)); //设置锚点为上边中点

            sp->setPosition(VisibleRect::top().x, VisibleRect::top().y - i * sp->getContentSize().height -j * sp->getContentSize().height * 4

                            );

            this->addChild(sp);

            _vcSprites.pushBack(sp);

        }

        

    }


然后在SplashScene::update中,实现精灵坐标的转变:


void SplashScene::update(float dt)

{   

    for(auto it = _vcSprites.begin(); it != _vcSprites.end(); ++it)

    {

        y = (*it)->getPositionY() + 3;

        (*it)->setPositionY(y);

        if( (*it)->getPositionY() -  (*it)->getContentSize().height > VisibleRect::top().y)

        {

              (*it)->setPositionY(VisibleRect::top().y  - (*it)->getContentSize().height * 7);

              //7代表的是最后一张精灵


        }

    }

}


ok.


    




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值