首先将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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。