中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

cocos2dx番外篇——暫停界面的實現

發布時間:2020-06-23 10:02:18 來源:網絡 閱讀:5387 作者:shahdza 欄目:開發技術

    游戲需要暫停時,一般都是將游戲界面變灰,暫停所有動作,然后彈出一堆的按鈕。

    這該如何實現暫停界面呢?


1、定義

    我定義了兩個類:Game游戲類、GamePause暫停類。

    Game類中調用doPause()函數進行游戲暫停,卻換到GamePause暫停畫面。


2、doPause()

    這里需要用到CCRenderTexture這個動態紋理類,顧名思義就是可以動態創建紋理圖片。

    在doPause類中使用該類,將游戲界面截個圖

//
	//創建CCRenderTexture,紋理畫布大小為窗口大小(480,320)
	CCRenderTexture *renderTexture = CCRenderTexture::create(480,320);

	//遍歷Game類的所有子節點信息,畫入renderTexture中。
	//這里類似截圖。
	renderTexture->begin(); 
	this->getParent()->visit();
	renderTexture->end();
	
	//將游戲界面暫停,壓入場景堆棧。并切換到GamePause界面
	CCDirector::sharedDirector()->pushScene(GamePause::scene(renderTexture));
//


3、GamePause

    (1)在類中添加一個用于創建GamePause場景的靜態函數,且傳入參數為在doPause()函數中截圖的動態紋理圖片renderTexture。

//
	static cocos2d::CCScene* scene(CCRenderTexture* sqr);
//


    (2)實現創建GamePause場景的靜態函數。

    這里相當于將RenderTexture動態紋理圖片作為場景的背景圖片

//
	CCScene* GamePause::scene(CCRenderTexture* sqr) {
	
		CCScene *myscene = CCScene::create();  
		GamePause* mylayer = GamePause::create();
		myscene->addChild(mylayer);
		
		//增加部分:使用Game界面中截圖的sqr紋理圖片創建Sprite
		//并將Sprite添加到GamePause場景層中
		CCSprite *_spr = CCSprite::createWithTexture(sqr->getSprite()->getTexture());  
		_spr->setPosition(ccp(240,135)); //窗口大小(480,320),這個相對于中心位置。
		_spr->setFlipY(true);            //翻轉,因為UI坐標和OpenGL坐標不同
		_spr->setColor(cocos2d::ccGRAY); //圖片顏色變灰色
		myscene->addChild(_spr);
		

		return myscene;  
	}
//


4、繼續游戲

    若要繼續游戲,由于Game界面是push到場景堆棧中的。所以只要popScene,即可還原到游戲界面,即可繼續游戲。

//
	CCDirector::sharedDirector()->popScene();
//



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

星子县| 铁岭县| 封开县| 太仆寺旗| 屏东县| 巴里| 蓬莱市| 东海县| 临潭县| 祁东县| 郧西县| 顺平县| 长泰县| 和平区| 新干县| 温泉县| 涿州市| 延吉市| 玉屏| 清徐县| 龙门县| 兴业县| 尼木县| 星座| 宜兰县| 离岛区| 遵义市| 普格县| 武陟县| 孙吴县| 恭城| 昌都县| 新竹市| 新龙县| 阳谷县| 泰来县| 西乡县| 伊川县| 四平市| 田阳县| 天津市|