国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

Cocos2d-x UI開發之場景切換代碼實例

2020-01-26 15:19:55
字體:
來源:轉載
供稿:網友

cocos2d-x中的場景切換是通過導演類調用相應的方法完成的,可以通過CCDirector::sharedDirector()->replaceScene()方法切換場景,參數是要切換的新場景,這種方法會釋放掉舊的場景。通過pushScene()切換則是將舊的場景壓入到棧中,以便通過popScene()函數出棧,繼續運行原場景。剛開始程序啟動的時候通過runWithScene()運行一個新的場景。下面通過代碼來說明。單擊下圖可以查看效果。

這次代碼一共建立了倆個場景,一個是原來的helloworld場景,一個是SecondScene場景。具體的看代碼吧。

bool HelloWorld::init(){ bool bRet = false; do {  CC_BREAK_IF(! CCLayer::init());		CCLabelTTF * ttf = CCLabelTTF::create("next scene","Arial",32);		//為該場景添加一個label菜單		CCMenuItemLabel * labelMenu = CCMenuItemLabel::create(ttf,this,menu_selector(HelloWorld::menuCloseCallback));		CCMenu * menu = CCMenu::create(labelMenu,NULL);		this->addChild(menu);  bRet = true; } while (0); return bRet;}//該函數實現場景的切換void HelloWorld::menuCloseCallback(CCObject* pSender){	//使用以下的場景切換類可以產生特殊的效果,這些類有很多,一般有倆個或者是三個參數,第一個參數是	//時間,第二個參數是要切換到的場景,第三個參數根據類的不同各不相同,這個淡入淡出的效果第三個參數是顏色	CCTransitionFade * fade = CCTransitionFade::create(2.0,SecondScene::scene(),ccc3(255,100,100));	CCDirector::sharedDirector()->replaceScene(fade);	//也可以采用如下的方法	//CCDirector::sharedDirector()->pushScene(fade);}

以下是SecondScene.cpp

#include "SecondScene.h"#include "HelloWorldScene.h"CCScene * SecondScene::scene(){	CCScene * scene = NULL;	do	{		scene = CCScene::create();		CC_BREAK_IF(!scene);		SecondScene * layer = SecondScene::create();		CC_BREAK_IF(!layer);		scene->addChild(layer);	}	while(0);	return scene;}bool SecondScene::init(){	bool bRet = false;	do	{		CC_BREAK_IF(!CCLayer::init());		CCLabelTTF * ttf = CCLabelTTF::create("first scene","Arial",32);		CCMenuItemLabel * labelMenu = CCMenuItemLabel::create(ttf,this,menu_selector(SecondScene::changeScene));		CCMenu * menu = CCMenu::create(labelMenu,NULL);		this->addChild(menu);		bRet = true;	}	while(0);	return bRet;}void SecondScene::changeScene(CCObject * sender){	//使用CCTransitionPageTurn類需要先設置攝像機	CCDirector::sharedDirector()->setDepthTest(true);	//第三個參數為false表示向前翻頁,為true表示向后翻頁	CCTransitionPageTurn * pageTurn = CCTransitionPageTurn::create(2.0,HelloWorld::scene(),false);	CCDirector::sharedDirector()->replaceScene(pageTurn);	//采用如下的方法就沒有特效了	//CCDirector::sharedDirector()->popScene();}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 旬邑县| 高平市| 关岭| 图们市| 三亚市| 常州市| 营口市| 来凤县| 晋城| 哈尔滨市| 年辖:市辖区| 东乌| 昌乐县| 浪卡子县| 富裕县| 诸暨市| 茶陵县| 白河县| 习水县| 蒙山县| 铜鼓县| 德化县| 酉阳| 雅安市| 濮阳县| 常州市| 宜黄县| 新丰县| 木里| 东乡族自治县| 和静县| 石家庄市| 安乡县| 蓬溪县| 五寨县| 庆城县| 新干县| 鲁甸县| 清水河县| 长岛县| 凤山市|