cocos2dx-lua的適配和橫屏豎屏

  • 橫屏豎屏
    這個(gè)是由工程目錄下的config.json文件中

    config.json.png

    isLandscape控制的,為true則為橫屏,為false是豎屏
    其中 width 和 height 是控制模擬器的大小的

  • 適配
    適配最重要的概念是設(shè)計(jì)分辨率
    設(shè)計(jì)分辨率:指的是你的頁面設(shè)計(jì)時(shí)采用的分辨率
    選擇何種設(shè)計(jì)分辨率?
    選擇哪種分辨率,其實(shí)就是說市面上哪種分辨率的機(jī)型最多,你就用哪種,比如你的設(shè)計(jì)分辨率是960x640的,如果所有機(jī)器都是這個(gè)分辨率,那么顯示出來的效果就和你想要的效果是一樣的,如果有機(jī)型器1136x640,那顯然你設(shè)計(jì)的界面在這種機(jī)型上會(huì)在長度上不夠而出現(xiàn)黑邊。

  • 適配的種類
    市面上的機(jī)型種類可謂繁多,要想適配每一種機(jī)型是不容易的,其中有幾種適配方案

    • FIXED_WIDTH
      這個(gè)的意思是按照寬度來適配,就是保證寬度完美顯示,如果你的設(shè)計(jì)分辨率是100x200,但是機(jī)型的實(shí)際分辨率是200x300,那么cocos2dx會(huì)將這個(gè)界面擴(kuò)大兩倍,也就是按照寬度來縮放,不管高度如何

    • FIXED_HEIGHT
      這個(gè)意思和上面剛好相反,按照高度來適配,保證高度完美顯示,而不管寬度

    • NO_BORDER
      這個(gè)是結(jié)合以上兩種,保證界面能完整顯示在屏幕中,舉個(gè)例子,如果設(shè)計(jì)分辨率是100x200,實(shí)際分辨率是200x300,首先計(jì)算寬度的比例是2,高度的比例是1.5,所以為了保證都能顯示,將采用1.5作為縮放比例。這種情況下是會(huì)有界面損失的

  • SHOW_ALL
    這個(gè)會(huì)將整個(gè)界面顯示出來,它和N0_BORDER的區(qū)別在于,這種方式會(huì)將界面完整的顯示出來,但是會(huì)出現(xiàn)黑邊

  • ui的適配
    了解了適配的基本原理,在來看看如何適配ui的,如果我要實(shí)現(xiàn)這樣的效果,在左上角放一個(gè)按鈕,設(shè)計(jì)分辨率是960x640,適配類型選擇NO_BORDER,那很顯然,如果在某種機(jī)型上,這個(gè)按鈕肯定有一部分會(huì)處在黑暗中,要想讓它正確的顯示出來,就要用到相對(duì)坐標(biāo)這個(gè)東西了。

cocostudio.png

在界面中放一個(gè)容器,然后把你要的ui放進(jìn)去,比如這個(gè)按鈕,然后設(shè)置這個(gè)按鈕相對(duì)父容器的上左位置,來確定它在父容器中的位置,現(xiàn)在不管怎樣,這個(gè)按鈕都會(huì)在這個(gè)父容器的左上角了,然后再代碼中,我們只需要?jiǎng)討B(tài)的設(shè)置這個(gè)父容器的大小和屏幕一樣大,那這個(gè)按鈕就一定會(huì)顯示在左上角了。

local size = cc.Director:getInstance():getVisibleSize()

獲取屏幕大小

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容