由于最近一段时间,那个《保卫萝卜》挺火的,所以就看看了他的资源,以猜想他的实现方式,感觉这个应用还是有不错的研究意义的。
CCSize s = CCDirector::sharedDirector()->getWinSize();
CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();
//cache->addSpriteFramesWithFile("Resource/Player/player_4_run.plist","Resource/Player/player_4_run.png");
cache->addSpriteFramesWithFile("Resource/Themes/Theme1/BG1/BG-hd.plist","Resource/Themes/Theme1/BG1/BG-hd.pvr.ccz");
cache->addSpriteFramesWithFile("Resource/Themes/Theme1/Items/Monsters01-hd.plist","Resource/Themes/Theme1/Items/Monsters01-hd.pvr.ccz");
上面是载入想要的pvr.ccz 资源,一张背景和一个怪物的资源,下面我就来使用以下上面载入的资源
CCSprite* bg = CCSprite::createWithSpriteFrameName("skymap01.png");
bg->setPosition(ccp(s.width/2,s.height/2));
addChild(bg);
这就是我们游戏的背景,很简单,没啥好说的
CCArray* animFrames = CCArray::createWithCapacity(2);
int index_array[] = {1,2};
char str[100] = {0};
for(int i = 0; i < _countof(index_array); i++)
{
sprintf(str, "fly_yellow%02d.png", index_array[i]);
CCSpriteFrame* frame = cache->spriteFrameByName( str );
animFrames->addObject(frame);
}
由于我的怪物是一个可爱的动物,所以是一个动画帧,cocos2d-x样例中有的实例,载入动画帧,来为下面的动画做准备。
CCSprite* pPlayer = CCSprite::createWithSpriteFrameName("fly_yellow01.png");
pPlayer->setPosition(ccp(s.width/2,s.height/2));
addChild(pPlayer,0,tag_PLAYER_GIRL);
在设置动画前,需要一个静止的CCSprite实例,上面干的事情就是这个
m_run = CCAnimation::createWithSpriteFrames(animFrames, 1.0f/4);
m_run->retain();
CCFiniteTimeAction* pRun = CCRepeatForever::create(CCAnimate::create(m_run));
开始创建动画了,由于这个动画是以后会频繁用的,所以我给保存起来了。以备后用。
pPlayer->runAction(pRun);
跑起来,效果如下:
后续接着研究一下这个游戏。蛮有意思的游戏。。。。