cocos2dx中的導演類

Director是整個cocos2dx引擎的核心,是整個遊戲的控制儀,遊戲中的一些常用操作就是由Director來控制的,比如OpenGL ES的初始化,場景的轉換,遊戲暫停繼續的控制,世界座標和GL座標之間的切換,對節點(遊戲元素)的控制等,還有一些遊戲數據的保存調用,屏幕尺寸的獲取等都要由Director類來管理控制的。
在Cocos2dx中把統籌遊戲大局的類抽象爲導演(Director),會經常調用進行一些控制,所以該Director利用了單例設計模式。
一下總結一些關於導演類的函數用法:

//創建一個導演類的單例
 Director* pDirector = Director::getInstance();
 //獲得一個glview
GLView* pEGLView = pDirector->getOpenGLView();
//設置FPS值
pDirector->setAnimationInterval(1.0 / 40)
//開始動畫
Director::getInstance()->startAnimation();
//移除所有cocos2dx的緩衝數據
cocos2d::Director::getInstance()->purgeCachedData()
//場景出棧 刪除當前場景
Director::getInstance()->popScene()
//將一個新場景推入場景棧中 並替換運行場景爲這個的新場景
Director::getInstance()->pushScene(scene)
//結束場景
Director::getInstance()->end()
//返回opengl的大小 單位爲點
Director::getInstance()->getWinSize()
//返回可見OpenGL視圖大小,以點爲單位
Director::getInstance()->getVisibleSize()
//返回可見OpenGL視圖起始點,以點爲單位
Director::getInstance()->getVisibleOrigin()
//獲取正在執行的場景
Director::getInstance()->getRunningScene()
//運行某個場景
director->runWithScene(scene)
//用新場景替換舊場景
Director::getInstance()->replaceScene(Scene);
//給正在運行的場景添加tag值
Director::getInstance()->getRunningScene()->getChildByTag(100)
//獲得一個調度器
Director::getInstance()->getScheduler()

那麼getVisibleSize 和 getWinSize 和 getVisibleOrigin有什麼不同?

getVisibleSize:獲得可視區域的大小。若是設計分辨率跟屏幕尺寸一樣大,則getVisibleSize便是getWinSize。
getWinSize:獲取屏幕大小。
getVisibleOrigin:表示可視區域的起點座標。
另外還有一個就是Node節點裏面的getContentSize()函數。
getContentSize : 來獲得節點(Node)原始的大小。只是邏輯尺寸,不是像素

未完待續,在以後的工作中繼續總結用法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章