Cocos2dx學習筆記4:導演(Director)

Director是整個cocos2dx引擎的核心,是整個遊戲的控制儀,遊戲中的一些常用操作就是由Director來控制的,比如OpenGL ES的初始化,場景的轉換,遊戲暫停繼續的控制,世界座標和GL座標之間的切換,對節點(遊戲元素)的控制等,還有一些遊戲數據的保存調用,屏幕尺寸的獲取等都要由Director類來管理控制的。

在Cocos2dx中把統籌遊戲大局的類抽象爲導演(Director),會經常調用進行一些控制,所以該Director利用了單例設計模式

通過前面我們創建的項目我們打開AppDelegate.cpp文件,可以發現裏面在使用了Director的一些函數。

學習筆記4:圖1.png

 

 

getInstance();//返回一個導演的單例。

getOpenGLView();//獲取GLView。

setOpenGLView(glview);//設置GLView。

setDisplayStats(true);//左下角是否有顯示FPS。

setAnimationInterval(1.0 / 60);//設置FPS的值。

stopAnimation();//停止動畫。不進行繪製。停止主循環。 

getInstance()->startAnimation();//主循環觸發一次調用過stopAnimation才能調用這個函數。

 

我們通常用getInstance() 方法取得Director的實例。我們可以打開引擎的目錄D:\cocos2d-x-3.4\cocos\base下,找到類CCDirector,來查看該類的函數和用法。

最常見的一些函數有:

getWinSize () 返回OpenGL視圖的大小,以點爲單位。

getVisibleSize () 返回可見OpenGL視圖大小,以點爲單位。

getVisibleOrigin () 返回可見OpenGL視圖起始點,以點爲單位。 

runWithScene (Scene *scene) 初始化遊戲進入第一個場景調用它。

pushScene (Scene *scene) 暫停當前運行的場景,壓入到暫停的場景棧中。

popScene () 從堆棧中彈出了一個場景。

replaceScene (Scene *scene) 用新的場景替換運行場景。終止正在運行的場景。

 

通過剛剛列舉的一些常用函數我們可以發現幾個類似的函數。

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

getVisibleSize:獲得可視區域的大小。若是分辨率跟屏幕尺寸一樣大,則getVisibleSize便是getWinSize。

getWinSize:獲取屏幕大小。

getVisibleOrigin:表示可視區域的起點座標。

另外還有一個就是Node節點裏面的getContentSize()函數。

getContentSize : 來獲得節點(Node)原始的大小。只是邏輯尺寸,不是像素。

上面提到的這四個函數最容易讓人搞混淆,理解即可。

本文由閉眼就天黑整理編輯,轉載請註明:http://www.byjth.com/biji/23.html | 閉眼就天黑專欄_原創技術博客

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