学习COCOS2D-x 精灵动画 实现一个《热血传奇》开门效果

来源:互联网 发布:淘宝加盟 编辑:程序博客网 时间:2024/04/19 22:06


传奇资源归属盛大游戏;仅自己学习使用;如果有侵权本人做及时删改


本人cocos菜鸟,如有代码不入法眼,请多包涵;直接上代码;


#include "LoginDoor.h"using namespace cocos2d;LoginDoor::LoginDoor(void){}LoginDoor::~LoginDoor(void){}CCScene* LoginDoor::scene(){CCScene * scene = NULL;do {// 'scene' is an autorelease objectscene = CCScene::create();CC_BREAK_IF(! scene);// 'layer' is an autorelease objectCCLayer *layer = LoginDoor::create();CC_BREAK_IF(! layer);// add layer as a child to scenescene->addChild(layer);} while (0);return scene;}//初始化场景bool LoginDoor::init(){bool bRet = false;do {CCSize winSize = CCDirector::sharedDirector()->getWinSize();  //获得SpriteFrame的缓存CCSpriteFrameCache* pCache = CCSpriteFrameCache::sharedSpriteFrameCache(); pCache->addSpriteFramesWithFile("door/door_Pack_0.plist");//背景大门CCSprite* doorSprite = CCSprite::createWithSpriteFrameName("22.BMP"); doorSprite->setPosition(ccp(winSize.width/2,winSize.height/2)); addChild(doorSprite,0);//用door_Pack_0.png//的第一张图片创建一个精灵CCSprite* pSprite = CCSprite::createWithSpriteFrameName("23.BMP");  //设置精灵的坐标pSprite->setPosition(ccp(winSize.width/2,winSize.height/2)); //获得SpriteFrame的缓存CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("door/door_Pack_0.plist","door/door_Pack_0.png");CCArray *pArray = CCArray::create();for(int i=23; i<=32; ++i){char buffer[50]= {0};sprintf(buffer, "%d.BMP", i);//生成精灵帧CCSpriteFrame *pSpriteFrame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(buffer);pArray->addObject(pSpriteFrame);} //用array中的spriteframe创建一个animation,每帧间隔0.2sCCAnimation* pAnimation = CCAnimation::createWithSpriteFrames(pArray,0.2f);//生成动画动作对象CCAnimate* panimate = CCAnimate::create(pAnimation);pSprite->runAction(CCRepeatForever::create(panimate));addChild(pSprite,1);   bRet = true;}while(0);return bRet;}