編寫小遊戲《貪頭蛇》第二篇

源碼下載地址:http://download.csdn.net/detail/oyangyufu/7505487

該篇主要實現四個菜單按鈕回調功能,切換到對應場景

關於頁面

代碼:

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("\t	Snake is a classic mobile phone game, \n\
												simple and resistance to play.By \n\
												controlling the direction of the \n\
												snake eating the eggs that snake \n\
												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);

	//返回主菜單按鈕
	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);

	//音樂設置按鈕
	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);

	//上一步按鈕
	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();
}








發佈了103 篇原創文章 · 獲贊 10 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章