Cpp文件功能介绍
GameAboutScene.cpp 关于页面
GameMainScene.cpp游戏主页面
GameMark.cpp分数
GameMenuScene.cpp游戏主菜单
GameObjHero.cpp主角
GameObjMap.cpp游戏地图
GameObjStar.cpp星星
菜单主页面:
主菜单页面背景
CCSprite* bg = CCSprite::create("MainMenu.png");
bg->setScale(0.5);
bg->setPosition( ccp(size.width/2, size.height/2) );
this->addChild(bg, 0,0);
菜单按钮及其效果,单击事件
CCMenuItemImage *newGameItem = CCMenuItemImage::create("newGameA.png", "newGameB.png",this,menu_selector(GameMenu::menuNewGameCallback)); //NEW GAME
newGameItem->setScale(0.5);
newGameItem->setPosition(ccp(size.width / 2 + 40,size.height / 2 - 20));
newGameItem->setEnabled(false); //暂不可见
CCMenuItemImage *continueItem = CCMenuItemImage::create("continueA.png", "continueB.png",this,menu_selector(GameMenu::menuContinueCallback)); //CONTINUE
continueItem->setScale(0.5);
continueItem->setPosition(ccp(size.width / 2 + 40,size.height / 2 - 60));
continueItem->setEnabled(false);
CCMenuItemImage *aboutItem = CCMenuItemImage::create("aboutA.png", "aboutB.png",this,menu_selector(GameMenu::menuAboutCallback)); //About
aboutItem->setScale(0.5);
aboutItem->setPosition(ccp(size.width / 2 + 40,size.height / 2 - 100));
aboutItem->setEnabled(false);
soundItem = CCMenuItemImage::create("sound-off-A.png", "sound-off-B.png",this,menu_selector(GameMenu::menuSoundCallback)); //声音
soundItem->setScale(0.5);
soundItem->setEnabled(false);
soundItem->setPosition(ccp(40,40));
CCMenu* mainmenu = CCMenu::create(newGameItem,continueItem,aboutItem,soundItem,NULL);
mainmenu->setPosition(ccp(0,0));
this->addChild(mainmenu,1,3);
issound = false;
进入该场景动画,菜单按钮由小至大缩放,并显示菜单
void GameMenu::onEnter(){
CCLayer::onEnter();
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCNode* mainmenu = this->getChildByTag(3);
mainmenu->setScale(0);
mainmenu->runAction(CCSequence::create(CCScaleTo::create(0.5,1),CCCallFuncN::create(this, callfuncN_selector(GameMenu::menuEnter)),NULL));
}
void GameMenu::menuEnter(CCNode* pSender ){
CCNode* mainmenu = this->getChildByTag(3);
CCArray* temp = mainmenu->getChildren();
for(int i = 0;i < temp->count();i ++)
((CCMenuItemImage *)temp->objectAtIndex(i))->setEnabled(true);
}
菜单按钮单击事件切换场景
切换游戏主页面
void GameMenu::menuNewGameCallback(CCObject* pSender)
{
CCDirector::sharedDirector()->setDepthTest(true);
CCDirector::sharedDirector()->replaceScene(CCTransitionPageTurn::create(0.5,GameMain::scene(), false));
}
void GameMenu::menuContinueCallback(CCObject* pSender)
{
CCDirector::sharedDirector()->setDepthTest(true);
CCDirector::sharedDirector()->replaceScene(CCTransitionPageTurn::create(0.5,GameMain::scene(), false));
}
切换关于页面
void GameMenu::menuAboutCallback(CCObject* pSender)
{
CCDirector::sharedDirector()->setDepthTest(true);
CCDirector::sharedDirector()->replaceScene(CCTransitionPageTurn::create(0.5,GameAbout::scene(), false));
}
背景音乐设置
void GameMenu::menuSoundCallback(CCObject* pSender)
{
if(!issound)//开
{
soundItem->setNormalImage(CCSprite::create("sound-on-A.png"));
soundItem->setDisabledImage(CCSprite::create("sound-on-B.png"));
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic(CCFileUtils::sharedFileUtils()->fullPathForFilename("background.mp3").c_str(), true);
issound = true;
}
else//关
{
soundItem->setNormalImage(CCSprite::create("sound-off-A.png"));
soundItem->setDisabledImage(CCSprite::create("sound-off-B.png"));
CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
issound = false;
}
}
横屏小游戏--萝莉快跑源码分析一,布布扣,bubuko.com
原文地址:http://blog.csdn.net/oyangyufu/article/details/27224261