源代码下载地址:http://download.csdn.net/detail/oyangyufu/7505487
该篇主要实现四个菜单button回调功能,切换到相应场景
关于页面
代码:
SnakeSceneManager类管理全部场景切换,仅仅须要实例一个对象调用。关于场景切换:
void SnakeSceneManager::aboutlayer() { CCScene *aboutscene = CCScene::create(); AboutLayer *AL = AboutLayer::create(); aboutscene->addChild(AL); CCDirector::sharedDirector()->replaceScene(CCTransitionFadeTR::create(1.5f, aboutscene)); }
进入AboutLayer类。初始化该场景
//图层背景 CCSize size = CCDirector::sharedDirector()->getVisibleSize(); CCSprite *sp1 = CCSprite::create("bckgr.png"); sp1->setAnchorPoint(ccp(0.5f, 0.5f)); sp1->setPosition(ccp(size.width/2, size.height/2)); this->addChild(sp1); //文本 CCLabelTTF *label = CCLabelTTF::create(" Snake is a classic mobile phone game, simple and resistance to play.By controlling the direction of the snake eating the eggs that snake longer, to obtain the integral.", "Helvetica", 20, ccp(480, 320), kCCTextAlignmentLeft); //label->setAnchorPoint(ccp(1.0f, 1.0f)); label->setPosition(ccp(size.width/2+100,size.height/2-80)); this->addChild(label); //返回主菜单button CCMenuItemImage *image1 = CCMenuItemImage::create("menuHome.png", "menuHome2.png", this, menu_selector(AboutLayer::toback)); image1->setPosition(ccp(size.width/2, 50)); image1->setScale(0.5f); CCMenu *menu = CCMenu::create(image1, NULL); menu->setPosition(CCPointZero); this->addChild(menu);
切换到主菜单页面
void AboutLayer::toback(CCObject *Obj) { ssm->MenuScene(); }
设置页面
代码:
切换该场景
void SnakeSceneManager::setlayer() { CCScene *setLayer = CCScene::create(); SetLayer *SL = SetLayer::create();//设置图层 setLayer->addChild(SL); CCDirector::sharedDirector()->replaceScene(CCTransitionFadeTR::create(1.5f, setLayer)); }
进入SetLayer类,初始化该场景
//设置图层背景 CCSize size = CCDirector::sharedDirector()->getVisibleSize(); CCSprite *spr1 = CCSprite::create("bckgr.png"); spr1->setPosition(ccp(size.width/2, size.height/2)); this->addChild(spr1); //音乐 CCLabelTTF *labe = CCLabelTTF::create("SetMusic:", "Helvetica", 20, ccp(100, 20),kCCTextAlignmentLeft) ; labe->setPosition(ccp(size.width/2-50, size.height/2+50)); this->addChild(labe); //音乐设置button image1 = CCMenuItemImage::create("sound-on-A.png", "sound-off-A.png", this, menu_selector(SetLayer::tosetmusic)); image1->setScale(0.5f); image1->setPosition(ccp(size.width/2+30, size.height/2+50)); MUISC = false; CCMenu *menu = CCMenu::create(image1, NULL); menu->setPosition(CCPointZero); this->addChild(menu); //上一步 CCLabelTTF *labe2 = CCLabelTTF::create("Back:", "Helvetica", 20, ccp(100,20), kCCTextAlignmentLeft); labe2->setPosition(ccp(size.width/2-50, size.height/2)); this->addChild(labe2); //上一步button image3 = CCMenuItemImage::create("backA.png", "backB.png", this, menu_selector(SetLayer::toback)); image3->setPosition(ccp(size.width/2+30, size.height/2)); image3->setScale(0.5f); CCMenu *menu2 = CCMenu::create(image3, NULL); menu2->setPosition(CCPointZero); this->addChild(menu2);设置背景音乐,开关音乐图标的变化
void SetLayer:: tosetmusic(CCObject *pObj) { if (!MUISC)//禁音 ,off图标显示 { image1->setNormalImage(CCSprite::create("sound-off-A.png")); image1->setDisabledImage(CCSprite::create("sound-on-A.png")); CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(); MUISC = true; CCLOG("stop..."); } else //开启, on图标显示 { image1->setNormalImage(CCSprite::create("sound-on-A.png")); image1->setDisabledImage(CCSprite::create("sound-off-A.png")); CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("background.mp3", true); MUISC = false; CCLOG("start..."); } }上一步切换至主菜单页面
void SetLayer::toback(CCObject *pObj) { ssm->MenuScene(); }