cocos2dx——实现儿童节贺卡02
2015-06-02 00:38
363 查看
这下来实现幻灯片的播放效果,定义一个精灵数组,依次播放,每张播放完成后回调一个函数即可
名字起反了,先叫ThreeScene吧,有点别扭
实现:
效果应该能够想象出来!呵呵,呵呵,幻灯片嘛!
名字起反了,先叫ThreeScene吧,有点别扭
#ifndef _ThreeScene_H_ #define _ThreeScene_H_ #include "cocos2d.h" USING_NS_CC; class ThreeScene :public Layer { public: bool init(); static Scene* createScene(); CREATE_FUNC(ThreeScene); void initVector(); void callback(); public: static int index; //幻灯片的序号 Vector<Sprite*> sprites; }; #endif
实现:
#include "ThreeScene.h" #include "SecondScene.h" USING_NS_CC; int ThreeScene::index = 0; Scene* ThreeScene::createScene() { // 'scene' is an autorelease object auto scene = Scene::create(); // 'layer' is an autorelease object auto layer = ThreeScene::create(); // add layer as a child to scene scene->addChild(layer); // return the scene return scene; } // on "init" you need to initialize your instance bool ThreeScene::init() { ////////////////////////////// // 1. super init first if (!Layer::init()) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); initVector(); //先播放第一张 auto fadein = FadeIn::create(2.0f); auto fadeout = FadeOut::create(2.0f); auto callfunc = CallFunc::create(CC_CALLBACK_0(ThreeScene::callback, this)); auto sequence = Sequence::create(fadein, fadeout, callfunc,NULL); sprites.at(0)->setVisible(true); sprites.at(0)->runAction(sequence); //添加粒子效果 ParticleSystem* ps = ParticleSnow::create(); ps->setTexture(Director::getInstance()->getTextureCache()->addImage("heart.png")); ps->setPosition(Point(visibleSize.width / 2, visibleSize.height)); ps->createWithTotalParticles(1000); this->addChild(ps); return true; } //初始化数组 void ThreeScene::initVector() { Size visibleSize = Director::getInstance()->getVisibleSize(); for (int i = 1; i <= 11; i++) { char buf[20]; sprintf(buf, "%d.jpg",i); auto sprite = Sprite::create(buf); sprite->setVisible(false);//设置不可见 sprite->setOpacity(50);//透明度为50 this->addChild(sprite); sprite->setPosition(visibleSize.width / 2, visibleSize.height / 2); sprites.pushBack(sprite); } } void ThreeScene::callback() { index++; if (index == 11) { Director::getInstance()->replaceScene(TransitionFade::create(1.2f, SecondScene::createScene())); } else { auto fadein = FadeIn::create(1.0f); auto fadeout = FadeOut::create(1.0f); auto callfunc = CallFunc::create(CC_CALLBACK_0(ThreeScene::callback, this)); auto sequence = Sequence::create(fadein, fadeout, callfunc, NULL); sprites.at(index - 1)->setVisible(false); sprites.at(index)->setVisible(true); sprites.at(index)->runAction(sequence); } }
效果应该能够想象出来!呵呵,呵呵,幻灯片嘛!
相关文章推荐
- cocos2dx——实现儿童节贺卡01
- Cocos2d-x 详解坐标系统
- quick-cocos2d 之动态更新
- cocos2d-x播放视频(VideoPlayer)小记
- cocos2dx Armature动画
- Cocos2d-x CCProgressTimer
- 使用Tiled制作地图
- cocos2dx3.4 BOX2D debugdraw
- iOS和android游戏纹理优化和内存优化(cocos2d-x)
- Cocos2D-X下,iOS设备显示多行文字显示不全的问题
- cocos2d 内存管理机制
- 【木头Cocos2d-x 016】控件篇(第01章) 我最爱的九妹和按钮事件
- 我的Cocos2d-x学习笔记(十五)CCControlSlider、CCControlSwitch、CCScale9Sprite、CCControlButton
- cocos2d-x-3.4 无法打开包含文件extensions/ExtensionExport.h
- Cocos2d-x的学习之旅(二)HelloWorld
- cocos2dx常用工具集
- 从cocostudio获取控件,添加回调函数
- Cocos2d-x3.2 定时器的使用
- cocos v2.2.6&cocos2d-x-3.6实练
- Cocos2d-x动作CCAction