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

cocos2dx3.2 实现splash屏幕图片秀滚动,第1张

概述嘿,秀一下效果图: 让这四张美女图片,循环的向上滚动,那么如何做的呢? 首先准备四张图片分别命名: Beauty1,Beauty2, Beauty3,Beauty4 然后在Splash类中添加_vcSprites,用来保存精灵 class SplashScene : public cocos2d::Scene { public:     CREATE_FUNC(SplashScene);    

嘿,秀一下效果图:


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

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

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. 总结

以上是内存溢出为你收集整理的cocos2dx3.2 实现splash屏幕图片秀滚动全部内容,希望文章能够帮你解决cocos2dx3.2 实现splash屏幕图片秀滚动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1028621.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存