现在的位置: 首页 > 综合 > 正文

捕鱼山寨——-(一) 菜单

2013年10月02日 ⁄ 综合 ⁄ 共 3036字 ⁄ 字号 评论关闭

先来张效果图

 

----------------------------------分割线------------------------------

#include "StartMenuScene.h"
#include "GameScene.h"
#include "HelpScene.h"

using namespace cocos2d;

CCScene* StartMenu::scene()
{
    CCScene * scene = NULL;
    do 
    {
        // 'scene' is an autorelease object
        scene = CCScene::create();
        CC_BREAK_IF(! scene);

        // 'layer' is an autorelease object
        StartMenu *layer = StartMenu::create();
        CC_BREAK_IF(! layer);

        // add layer as a child to scene
        scene->addChild(layer);
    } while (0);

    // return the scene
    return scene;
}

// on "init" you need to initialize your instance
bool StartMenu::init()
{
    bool bRet = false;
    do 
    {
        //////////////////////////////////////////////////////////////////////////
        // super init first
        //////////////////////////////////////////////////////////////////////////

        CC_BREAK_IF(! CCLayer::init());
      

 
        // Get window size and place the label upper. 
        CCSize size = CCDirector::sharedDirector()->getWinSize();

		initMenu(size);
        // 3. Add add a splash screen, show the cocos2d splash image.
        CCSprite* bSprite = CCSprite::create("/bg/start.jpg");
        CC_BREAK_IF(! bSprite);
        // Place the sprite on the center of the screen
        bSprite->setPosition(ccp(size.width/2, size.height/2));
        this->addChild(bSprite, 0);

        //add logo  to  scene
		CCSprite *logSprite =CCSprite::create("logo.png");
		CC_BREAK_IF(! logSprite);
		logSprite->setPosition(ccp(size.width/2,size.height-150));
		this->addChild(logSprite,1);

        bRet = true;
    } while (0);

    return bRet;
}

void StartMenu::initMenu(const CCSize & size){

 	     //创建一个菜单的容器
		 CCMenu* sMenu = CCMenu::create();
		 sMenu->setPosition(CCPointZero);
		  
		//开始游戏的item
		CCMenuItemImage *pStartGame=CCMenuItemImage::create("main_button1_1.png",
															"main_button1_2.png",
															this,
															menu_selector(StartMenu::menuStartGameCallback)
															);
		
		 pStartGame->setPosition(size.width/2,size.height-250);
		 sMenu->addChild(pStartGame);

		  //添加帮助菜单
		 CCMenuItemImage *hMenu= CCMenuItemImage::create("main_button2_1.png","main_button2_2.png",this,menu_selector(StartMenu::menuHelpCallback));
		 hMenu->setPosition(ccp(size.width/2,size.height-305));
		 sMenu->addChild(hMenu);

		 //添加更多菜单
		 CCMenuItemImage *mMenu= CCMenuItemImage::create("more1.png","more2.png",this,menu_selector(StartMenu::menuCloseCallback));
		 mMenu->setPosition(ccp(size.width/2,size.height-360));
		 sMenu->addChild(mMenu);


		  //添加设置菜单
		 CCMenuItemImage *setMenu=CCMenuItemImage::create("main_button3_1.png","main_button3_2.png",this,menu_selector(StartMenu::menuCloseCallback));
		 setMenu->setPosition(ccp(size.width/2,size.height-420));
		 sMenu->addChild(setMenu);


		  //添加退出菜单
		 CCMenuItemImage *exitMenu=CCMenuItemImage::create("exit1.png","exit2.png",this,menu_selector(StartMenu::menuCloseCallback));
		 exitMenu->setPosition(ccp(size.width/2,size.height-480));
		 sMenu->addChild(exitMenu);
		

		//把餐单添加到当前的场景里面
		 this->addChild(sMenu, 1);
}

void StartMenu::menuCloseCallback(CCObject* pSender)
{
    // close 游戏
    CCDirector::sharedDirector()->end();
}

void StartMenu::menuStartGameCallback(CCObject* pSender){
	
	//进入游戏界面
	CCDirector::sharedDirector()->replaceScene(GameScene::scene());

}

//点击帮助按钮的回调方法
void StartMenu::menuHelpCallback(CCObject* pSender){
	//创建一个help的scene
	CCScene *scen=HelpScene::scene();
	//设置一个动画效果
	CCTransitionFade *fade=CCTransitionFade::transitionWithDuration(0.5,scen,ccBLACK);
	//切换场景
	CCDirector::sharedDirector()->replaceScene(fade);
}

 

抱歉!评论已关闭.