亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

芮城县| 河东区| 瑞金市| 伽师县| 昌平区| 宁陕县| 商丘市| 定南县| 容城县| 那曲县| 无锡市| 大名县| 定日县| 密山市| 南川市| 历史| 随州市| 沽源县| 常德市| 阜新市| 新乡市| 隆安县| 横山县| 合水县| 花莲县| 石泉县| 芒康县| 股票| 尉犁县| 舟曲县| 东源县| 天峨县| 郓城县| 灵丘县| 日土县| 绵阳市| 富阳市| 景宁| 饶平县| 镇宁| 德州市|