zoukankan      html  css  js  c++  java
  • 编写小游戏《贪头蛇》第二篇

    源代码下载地址: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();
    }







    
       
    
  • 相关阅读:
    bzoj 3027 [Ceoi2004]Sweet——生成函数
    bzoj 3028 食物——生成函数
    JZOJ 5461 购物 —— 贪心
    JZOJ 1003 [ 东莞市选 2007 ] 拦截导弹 —— 递推
    JZOJ 1667 ( bzoj 1801 ) [ AHOI 2009 ] 中国象棋 —— DP
    洛谷 P2055 [ ZJOI 2009 ] 假期的宿舍 —— 二分图匹配
    洛谷 P3398 仓鼠找sugar —— 树链剖分
    洛谷 P1083 [ NOIP 2012 ] 借教室 —— 线段树 / 二分差分数组
    bzoj 3895 取石子 —— 博弈论
    洛谷 P1312 [ NOIP 2011 ] Mayan游戏 —— 搜索+模拟
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5152079.html
Copyright © 2011-2022 走看看