cocos2dx3.2 实现splash屏幕简单实现
首先将splash,像素480 * 800大图如下图:
切成四个小图(480 * 200)命名:SplashSlice_01.png,SplashSlice_02.png,SplashSlice_03.png,SplashSlice_04.png 然后再代码实现如下: // SplashScene.cpp // DontSaveMeGame // // Created by Mr Gan on 1/2/15. // #include"SplashScene.h" #include "StartScene.h" #include "../VisibleRect.h" SplashScene::SplashScene() { } SplashScene::~SplashScene() { _vcSprites.clear(); } bool SplashScene::init() {
if (!Scene::init()) { return false; }
for (int i = 0; i < 4; ++i) {
auto fileName = String::createWithFormat("SplashSlice_0%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 * 200); this->addChild(sp); _vcSprites.pushBack(sp); }
auto move1 = MoveBy::create(0.5,Vec2(0,-200)); auto move2 = MoveBy::create(0.5,200)); auto fun = cocos2d::CallFunc::create(CC_CALLBACK_0(SplashScene::afterFirst,this)); auto seq = Sequence::create(move1,fun, NULL);
_vcSprites.at(0)->runAction(seq); _vcSprites.at(1)->runAction(move2);
return true;
} void SplashScene::update(float dt) { auto scene = StartScene::create(); Director::getInstance()->replaceScene(scene); } void SplashScene::afterFirst() {
auto move1 = MoveBy::create(0.5,200)); auto fun = cocos2d::CallFunc::create(CC_CALLBACK_0(SplashScene::afterSecond, NULL); _vcSprites.at(0)->runAction(seq); _vcSprites.at(2)->runAction(move2);
} void SplashScene::afterSecond() { auto move1 = MoveBy::create(0.5,200)); auto delay = DelayTime::create(0); auto fun = cocos2d::CallFunc::create(CC_CALLBACK_0(SplashScene::beginGame,this)); auto seq = Sequence::create(move1,delay,NULL); _vcSprites.at(0)->runAction(seq); _vcSprites.at(3)->runAction(move2);
} void SplashScene::beginGame() {
auto scene = StartScene::create(); auto tranScene = TransitionZoomFlipX::create(2.0f,scene,TransitionScene::Orientation::LEFT_OVER); Director::getInstance()->replaceScene(tranScene); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |