最后,添加每个字体(精灵)的效果啦
第一行是”祝“,闪烁动作,一定次数之后放大;
第二行是名字,三个字体分别做顺时针旋转,循环放大缩小,逆时针旋转;
第三行是”节日快乐“四个字循环的左右跑动;
直接上代码,代码写的有点烂:
#ifndef _SecondScene_H_
#define _SecondScene_H_
#include "cocos2d.h"
USING_NS_CC;
class SecondScene :public Layer {
public:
bool init();
static Scene* createScene();
CREATE_FUNC(SecondScene);
public:
Size visibleSize;
//几个精灵(字体)
Sprite* zhu;
Sprite* jin;
Sprite* xiang;
Sprite* yun;
Sprite* jie;
Sprite* ri;
Sprite* kuai;
Sprite* le;
public:
void addBackground();
void addSpriteZhu(); //添加:祝
void addSpriteNames();//添加第二行:姓名
void addSpriteJieRi(); //节日 两个字
void addSpriteKuaiLe();//快乐两个字
};
#endif
实现代码:
#include "SecondScene.h"
USING_NS_CC;
Scene* SecondScene::createScene()
{
// 'scene' is an autorelease object
auto scene = Scene::create();
// 'layer' is an autorelease object
auto layer = SecondScene::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 SecondScene::init()
{
//
// 1. super init first
if (!Layer::init())
{
return false;
}
visibleSize = Director::getInstance()->getVisibleSize();
addBackground();
addSpriteZhu();
addSpriteNames();
addSpriteJieRi();
addSpriteKuaiLe();
return true;
}
void SecondScene::addBackground() {
auto bg = Sprite::create("bg2.png");
bg->setScale(1.5);
this->addChild(bg);
bg->setPosition(visibleSize.width / 2, visibleSize.height / 2);
}
void SecondScene::addSpriteZhu() {
zhu = Sprite::create("zhu.png");
this->addChild(zhu);
zhu->setPosition(visibleSize.width / 2, visibleSize.height - zhu->getContentSize().height/2);
auto blink = Blink::create(20, 50);
auto scaleBy = ScaleBy::create(1, 1.5);
zhu->runAction(Sequence::create(blink, scaleBy, NULL));
}
void SecondScene::addSpriteNames() {
//添加 “金”
jin = Sprite::create("jin.png");
this->addChild(jin);
jin->setPosition(visibleSize.width / 4*1, visibleSize.height/2);
auto rotate1 = RotateBy::create(2, 180);
jin->runAction(RepeatForever::create(rotate1));
xiang = Sprite::create("xiang.png");
this->addChild(xiang);
xiang->setPosition(visibleSize.width / 4 * 2, visibleSize.height / 2);
auto rotate2 = RotateBy::create(2, 180);
auto scaleby = ScaleBy::create(2, 1.5);
xiang->runAction(RepeatForever::create(Sequence::create(scaleby,scaleby->reverse(),NULL)));
yun = Sprite::create("yun.png");
this->addChild(yun);
yun->setPosition(visibleSize.width / 4 * 3, visibleSize.height / 2);
auto rotate3 = RotateBy::create(2, -180);
yun->runAction(RepeatForever::create(rotate3));
}
//先向右然后向左重复
void SecondScene::addSpriteJieRi() {
jie = Sprite::create("jie.png");
this->addChild(jie);
jie->setPosition(visibleSize.width / 5 * 1, visibleSize.height / 5);
auto moveBy = MoveBy::create(2, Vec2(visibleSize.width / 5*3, 0));
auto seq = Sequence::create(moveBy, moveBy->reverse(), NULL);
jie->runAction(RepeatForever::create(seq));
ri = Sprite::create("ri.png");
this->addChild(ri);
ri->setPosition(visibleSize.width / 5 * 2, visibleSize.height / 5);
auto moveBy1 = MoveBy::create(2, Vec2( visibleSize.width / 5, 0));
auto seq1 = Sequence::create(moveBy1, moveBy1->reverse(), NULL);
ri->runAction(RepeatForever::create(seq1));
}
//先向左然后向右移动
void SecondScene::addSpriteKuaiLe() {
kuai = Sprite::create("kuai.png");
this->addChild(kuai);
kuai->setPosition(visibleSize.width / 5 * 3, visibleSize.height / 5);
auto moveBy = MoveBy::create(2, Vec2( -visibleSize.width / 5, 0));
auto seq = Sequence::create(moveBy, moveBy->reverse(), NULL);
kuai->runAction(RepeatForever::create(seq));
le = Sprite::create("le.png");
this->addChild(le);
le->setPosition(visibleSize.width / 5 * 4, visibleSize.height / 5);
auto moveBy1 = MoveBy::create(2, Vec2( - visibleSize.width / 5 *3, 0));
auto seq1 = Sequence::create(moveBy1, moveBy1->reverse(), NULL);
le->runAction(RepeatForever::create(seq1));
}
字体很丑啊,自己p的嘛,审美真烂,实话;
最后效果如下:
孩子还是挺可爱的,哈哈,自恋一下啦。
最后说一下添加音乐,一句话的事,只是在window上不要添加mp3格式就好了:
SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(0.5);
SimpleAudioEngine::getInstance()->playBackgroundMusic("music.wav", true);
将上面代码添加在第一个场景中。