您好,登錄后才能下訂單哦!
Director是整個cocos2dx引擎的核心,是整個游戲的控制儀,游戲中的一些常用操作就是由Director來控制的,比如OpenGL ES的初始化,場景的轉換,游戲暫停繼續的控制,世界坐標和GL坐標之間的切換,對節點(游戲元素)的控制等,還有一些游戲數據的保存調用,屏幕尺寸的獲取等都要由Director類來管理控制的。
在Cocos2dx中把統籌游戲大局的類抽象為導演(Director),會經常調用進行一些控制,所以該Director利用了單例設計模式。
通過前面我們創建的項目我們打開AppDelegate.cpp文件,可以發現里面在使用了Director的一些函數。
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 | 閉眼就天黑專欄_原創技術博客
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。