CoCos2d-x屏幕分辨率設置


CoCos2d-x屏幕分辨率設置

  接下來是講述CoCos2d-x對屏幕分辨率設置的問題:主要是 setFrameSize、setFrameZoomFactor 和 setDesignResolutionSize 函數的使用。

 

1 . setFrameSize這個函數是設置移動設備屏幕分辨率,一般與setDesignResolutionSize的設置一致。

 

2 . setFrameZoomFactor 調用這個函數是因為有的移動設備屏幕分辨率非常大,比如ipad3。太大的話在電腦上看不全了,所以用setFrameZoomFactor把程序窗口縮小。因此,這個函數只有在使用win32,mac,linux桌面時才會用到。

 

3.這個DesignResolutionSize表示設計方案,就是你的游戲完美支持的分辨率方案,一般根據圖片資源的尺寸來定,自適配時會按照這個分辨率計算出縮放因子。

因此,這個值也應該是動態的(當然也可設定,比如設為640x960寬屏,這樣在小屏的等比縮放也不會影響太大):

   pEGLView->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, kResolutionNoBorder);

  第3個參數kResolutionNoBorder 是適配策略中的一種:

2.0版本提供了三種適配策略:

(1)kResolutionNoBorder:超出屏幕的部分會被裁剪,兩側沒有黑邊,鋪滿屏幕,按圖片原始比例顯示,圖片不變形。

(2)kResolutionShowAll:整個游戲界面是可見的,會按原始比例進行縮放,圖片不變形,但兩側可能會留有黑邊,不鋪滿屏幕。

(3)kResolutionExactFit:整個游戲界面是可見的,圖片可能會進行拉伸或者壓縮處理,鋪滿屏幕,圖片會變形。

可以根據自己的要求選擇。

 

4.舉例:設置移動應用的分辨率,以640x960分辨率為例

(1)在main.cpp中設置:

    CCEGLView* eglView = CCEGLView::sharedOpenGLView();
    eglView->setFrameSize(640, 960);
    eglView->setFrameZoomFactor(1.0f);

(2)在AppDelegate.cpp中設置:

   CCEGLView::sharedOpenGLView()->setDesignResolutionSize(640, 960, kResolutionExactFit);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM