加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx3.2 实现splash屏幕简单实现

发布时间:2020-12-14 19:58:31 所属栏目:百科 来源:网络整理
导读:首先将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/

首先将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);


}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读