哇!板球 源代碼分析一
阿新 • • 發佈:2017-07-22
etl 開啟 site 全部 count-1 util track jsb news
遊戲主菜單頁面
BeginLayer類封裝該頁面。init函數初始化該頁面布景
該頁面背景
isDialog = false; setKeypadEnabled(true); //開啟按鍵事件 CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); //獲取可見區域原點坐標 CCSprite* bSprite = CCSprite::create("pic/background.png");//背景圖片 bSprite->setPosition(ccp(origin.x, origin.y)); bSprite->setAnchorPoint(ccp(0, 0));//默認錨點為0.5,0.5 this->addChild(bSprite, 0);
創建菜單項按鍵
主菜單鍵及回調
CCMenuItemImage *continueItem = CCMenuItemImage::create ( "menuContinue.png", //平時的圖片 "menuContinue2.png", //選中時的圖片 this, menu_selector(BeginLayer::continueSence)//點擊時運行的回調方法 );
繼續鍵及回調
CCMenuItemImage *continueItem = CCMenuItemImage::create ( "menuContinue.png", //平時的圖片 "menuContinue2.png", //選中時的圖片 this, menu_selector(BeginLayer::continueSence)//點擊時運行的回調方法 );
成就鍵及回調
CCMenuItemImage *achievementsItem = CCMenuItemImage::create ( "menuAchievements.png", //平時的圖片 "menuAchievements2.png", //選中時的圖片 this, menu_selector(BeginLayer::achievementsSence)//點擊時運行的回調方法 );
關於鍵及回調
CCMenuItemImage *aboutItem = CCMenuItemImage::create ( "menuAbout.png", //平時的圖片 "menuAbout2.png", //選中時的圖片 this, menu_selector(BeginLayer::aboutSence)//點擊時運行的回調方法 );
設置鍵及回調
CCMenuItemImage *settItem = CCMenuItemImage::create ( "set.png", //平時的圖片 "set2.png", //選中時的圖片 this, menu_selector(BeginLayer::setSence)//點擊時運行的回調方法 );
創建標題
CCSprite* tSprite = CCSprite::create("pic/title.png"); //設置精靈對象的位置 tSprite->setPosition(ccp(origin.x, origin.y+visibleSize.height-207)); tSprite->setAnchorPoint(ccp(0, 0)); this->addChild(tSprite, 3);
組合成菜單對象
pMenu = CCMenu::create(continueItem,newMenuItem,achievementsItem,aboutItem,settItem,NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, GAME_LEVEL_WYF);
為菜單項出場加入動畫
CCNode* child = NULL; CCArray * pArray = pMenu->getChildren();//獲取全部菜單項 int count = pArray->count();//個數 for(int m=0;m<count;m++)//遍歷菜單項 { child = (CCNode*)(pArray->objectAtIndex(m));//每一個菜單項 child->setPosition(ccp(400,550));//初始位置 CCActionInterval* moveTo1 = CCMoveTo::create(0.2f,ccp(400,-40)); CCActionInterval* moveTo2 = CCMoveTo::create(0.25f*(count-m),ccp(400,80+80*(count-1-m))); CCActionInterval* move_ease_in2 = CCEaseElasticOut::create(moveTo2);//moveTo2振幅效果 CCDelayTime *delay = CCDelayTime::create(0.2f*(count-m-1));//每一個菜單項出場間歇時間 CCSequence* seq = CCSequence::create(delay,moveTo1,move_ease_in2, NULL);// child->runAction(seq);//運行 }
主菜單鍵回調。通過調用toNewGameLayer來切換到NewGameLayer場景,真正的遊戲主頁面
void BeginLayer::newSence(CCObject* pSender) { tsm->toNewGameLayer(1);//第一關 }
繼續鍵回調,先獲取上次的數據。然後切換到對應關卡
void BeginLayer::continueSence(CCObject* pSender) { //int gK=JNIUtil::getInt("continue",1,classPath.c_str()); tsm->toNewGameLayer(1); }
成就鍵回調,調用toAchieveLayer切換到AchieveLayer場景。來統計遊戲數據中玩家最高分、最高關卡
void BeginLayer::achievementsSence(CCObject* pSender) { tsm->toAchieveLayer(); }
關於鍵回調。調用toHelpLayer切換到HelpLayer場景,提示遊戲幫助手冊
void BeginLayer::aboutSence(CCObject* pSender) { tsm->toHelpLayer(); }
設置鍵回調,調用toSetLayer切換到SetLayer場景,設置遊戲音樂及音效
void BeginLayer::setSence(CCObject* pSender) { tsm->toSetLayer(); }
返回鍵處理,調用toOutLayer切換到推出遊戲場景
void BeginLayer::keyBackClicked() { if(isDialog) { return; } isDialog = true; //暫停聲音播放 CocosDenshion::SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic(); tsm->toOutLayer(); }
哇!板球 源代碼分析一