Cocos2d-x 導演類CCDirector

Cocos2d-x 導演類CCDirector

導演類也是一個單例,有兩大作用
一是設置主窗口的顯示屬性(比如垂直或水平、是否顯示FPS)
二是管理、顯示場景。

之前提到過,場景是樹的根節點,一個游戲可以同時存在多個樹,但被激活的只能有一個
導演類的實現方法是:將所有樹的根節點(即場景對象)保存在一個堆棧中(array),最后進棧的就是當前激活的場景,當需要切換場景時,導演通過進棧、出棧或替換的方式實現

方法

CCDirector* sharedDirector(void);
獲取當前的CCDirector唯一實例

float getAnimationInterval()
獲取FPS(Frames Per Second)值

-(void) setAnimationInterval(double dValue);
獲取FPS(Frames Per Second)值

unsigned int getTotalFrames(void);
Director開始后調用了多少幀

bool isDisplayStats(void);
是否在屏幕底部顯示FPS

-(void) setDisplayStats(bool bDisplayStats);
設置在屏幕底部顯示FPS

GLView* getOpenGLView(void)
獲取CCEGLView,當一切條件提供

-(void) setOpenGLView(GLView *openGLView);
設置CCEGLView

bool isPaused(void);
是否暫停

Projection getProjection(void)
獲取OpenGL的Projection

-(void) setProjection(Projection projection);
設置OpenGL的Projection

-(void) setViewport();
設置OpenGL的Viewport

bool isSendCleanupToScene()
場景替換時是否接收到Cleanup事件
若新場景是push進來的,舊場景不會接收到Cleanup事件
若新場景是replace進來的,舊場景會接收到Cleanup事件

CCSize getWinSize(void);
獲取OpenGL View的大小 單位為點

CCSize getWinSizeInPixels(void);
獲取OpenGL View的大小 單位為像素

CCSize getVisibleSize();
獲取OpenGL View顯示區域大小 單位為點
如果沒調用CCEGLView::setDesignResolutionSize()則值和getWinSize相等

CCPoint getVisibleOrigin();
獲取OpenGL View顯示區域大小 單位為點

CCPoint convertToGL(const CCPoint& obPoint);
將UIKit坐標體系轉換成OpenGL坐標體系

CCPoint convertToUI(const CCPoint& obPoint);
將OpenGL坐標體系轉換成UIKit坐標體系

-(void) runWithScene: (CCScene*)scene
將場景對象壓入棧中,并激活(此時不能有已經激活的場景,因此該方法常用于剛進游戲時)。

-(void) replaceScene: (CCScene*)scene
替換當前激活的場景,同時將舊場景從堆棧中刪除,新場景壓入堆棧。

-(void) pushScene: (CCScene*) scene
添加新的場景進棧,并將其激活。

-(void) popScene
當前激活的場景出棧,激活上一個場景。

-(void) popToRootScene(void);
從堆棧中彈出所有場景,直到到隊列中的根場景。這個場景將代替正在進行的場景

-(void) pause(void);
暫停場景

-(void) resume(void);
恢復暫停的場景

-(void) stopAnimation(void);
停止動畫

-(void) startAnimation(void);
開始動畫

-(void) drawScene(void);
渲染、繪制場景

-(void) purgeCachedData(void);
刪除緩存的數據

-(void) setGLDefaultValues(void);
設置OpenGL的默認值

-(void) setAlphaBlending(bool bOn);
設置是否啟動OpenGl的alpha通道

-(void) setDepthTest(bool bOn);
設置是否測試景深

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容