天天看點

學習cocos2d-x之路(3)--建立第一個場景

建立我的第一個場景

學習cocos2d-x之路(3)--建立第一個場景

運作 install-templates-msvc.bat,VS2010将會安裝cocos2D-X的模闆,建立項目時可以直接建立一個HelloWorld應用。

删除HelloWolrldScene.cpp中不需要的部分,使用Tiled地圖編輯器繪制地圖後儲存到工程目錄Resource下,在HelloWorld::init()中建立地圖:

CCTMXTiledMap *map=CCTMXTiledMap::create("1.tmx");     //舊的cocos2d-x使用 :: tiledMapWithTmxFile(char *),新的版本此方法已經删除

   CC_BREAK_IF(! map);

  this->addChild(map);

增加函數createHeroSprite()建立一個4幀的循環播放的Hero精靈,需要在HelloWorld::init()中調用此函數

void HelloWorld::createHeroSprite()

{

 CCTexture2D *heroTex=CCTextureCache::sharedTextureCache()->addImage("hero.png");    //将紋理加入全局紋理緩沖區,并建立傳回紋理

 CCSpriteFrame * frame0,*frame1,*frame2,*frame3;                                                                   //建立4幀動畫

 frame0=CCSpriteFrame::createWithTexture(heroTex,CCRectMake(32*0,0,32,32));

 frame1=CCSpriteFrame::createWithTexture(heroTex,CCRectMake(32*1,0,32,32));

 frame2=CCSpriteFrame::createWithTexture(heroTex,CCRectMake(32*2,0,32,32));

 frame3=CCSpriteFrame::createWithTexture(heroTex,CCRectMake(32*3,0,32,32));

 CCArray * animFrames= CCArray::create();                                                                      //用CCArray儲存動畫幀,舊的版本使用CCMutableArray<T>,新版本已經删除

 animFrames->addObject(frame0);

 animFrames->addObject(frame1);

 animFrames->addObject(frame2);

 animFrames->addObject(frame3);

 CCAnimation * animation=CCAnimation::createWithSpriteFrames(animFrames,0.2); 

 animFrames->release();

 CCSprite * heroSprite=CCSprite::createWithSpriteFrame(frame0);//使用第一幀建立精靈

 heroSprite->setPosition(ccp(32,32*8));

 this->addChild(heroSprite);

 CCAnimate * animatie=CCAnimate::create(animation);                            建立動畫

 heroSprite->runAction(CCRepeatForever::create(animatie));

}