欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

cocos2d-x自制工具09:復(fù)活!x2屏幕適配方案-創(chuàng)新互聯(lián)

適配屏幕的方案主要看游戲類型,游戲類型決定了是否需要滾屏。不同的游戲類型,決定了不同屏幕適配方案。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、岑鞏網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場(chǎng)景定制、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為岑鞏等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

對(duì)于市面上大量存在的卡牌,單屏休閑益智類游戲,往往拼的是速度。但是惱人的屏幕適配問題,一直困擾了很多企業(yè)。

之前簡(jiǎn)單收集了一下市面上的各種分辨率。

480X800  現(xiàn)在最主流的中高端安卓智能機(jī)的分辨率,包括 windows phone也是這個(gè)分辨率

480X854  這個(gè)是WFVGA,是480X800的加長(zhǎng)版

540X960  HTC的高端機(jī)很喜歡用這個(gè)分辨率也就是qHD了

640X960 最經(jīng)典的iphone所使用的分辨率

1136X640  iphone5的分辨率

1280X720  傳說中的HD,也是現(xiàn)在各品牌主流旗艦機(jī)型的分辨率,而且屏幕都很大。

1280X800  現(xiàn)在只有三星的9220的5.3英寸巨屏用了這以分辨率

1024x768   iPad1分辨率 iPad2分辨率 iPad mini分辨率

2048×1536  iPad3分辨率 iPad4分辨率 iPad Air分辨率 iPad mini 2分辨率

1920x1080 Nexus5分辨率

這么多分辨率,很頭痛。這種情況下,我們一般使用的是固定一個(gè)分辨率,然后縮放的方式。Cocos2d-x引擎內(nèi)置了很多這種分辨率適配方案。主要使用這個(gè)函數(shù):

void CCEGLViewProtocol::setDesignResolutionSize(float width, float height, ResolutionPolicy resolutionPolicy)

ResolutionPolicy的參數(shù)如下:

enum ResolutionPolicy
{
    // The entire application is visible in the specified area without trying to preserve the original aspect ratio.
    // Distortion can occur, and the application may appear stretched or compressed.
    kResolutionExactFit,
    // The entire application fills the specified area, without distortion but possibly with some cropping,
    // while maintaining the original aspect ratio of the application.
    kResolutionNoBorder,
    // The entire application is visible in the specified area without distortion while maintaining the original
    // aspect ratio of the application. Borders can appear on two sides of the application.
    kResolutionShowAll,
    // The application takes the height of the design resolution size and modifies the width of the internal
    // canvas so that it fits the aspect ratio of the device
    // no distortion will occur however you must make sure your application works on different
    // aspect ratios
    kResolutionFixedHeight,
    // The application takes the width of the design resolution size and modifies the height of the internal
    // canvas so that it fits the aspect ratio of the device
    // no distortion will occur however you must make sure your application works on different
    // aspect ratios
    kResolutionFixedWidth,
    kResolutionUnKnown,
};

這些參數(shù)的含義,很多文章都分析過了,我們簡(jiǎn)單說一下:

kResolutionShowAll

等比例拉伸,直到寬度或高度達(dá)到屏幕的尺寸,但是:如果游戲的設(shè)計(jì)分辨率比率和設(shè)備的屏幕分辨率比率不同,最后會(huì)出現(xiàn)黑邊。結(jié)論:無法使用,黑邊出現(xiàn)不符合很多渠道和應(yīng)用商店的規(guī)范。

kResolutionExactFit

非等比例拉伸,圖像拉伸到整個(gè)屏幕。但是:如果游戲的設(shè)計(jì)分辨率比率和設(shè)備的屏幕分辨率比率不同,最后游戲畫面失真。結(jié)論:可以使用,但是效果很差。

kResolutionNoBorder

等比例拉伸,直到寬度或高度達(dá)到屏幕尺寸,且保證在另一方向上不會(huì)出現(xiàn)黑邊。但是,他只是簡(jiǎn)單的拉伸處理,對(duì)于座標(biāo)偏移沒有控制,造成最后代碼中要手動(dòng)計(jì)算座標(biāo)VisibleSize 和 VisibleOrigin,這不符合正常的開發(fā)習(xí)慣。結(jié)論:可以使用,但是座標(biāo)計(jì)算很繁瑣。

由于上面的種種問題,引擎團(tuán)隊(duì)最后又增加了兩個(gè)新參數(shù)

kResolutionFixedHeight和kResolutionFixedWidth,這兩個(gè)參數(shù)作用和kResolutionNoBorder類似,但是內(nèi)部座標(biāo)經(jīng)過了處理,不像kResolutionNoBorder那么麻煩。

我們的方案就基于這兩個(gè)參數(shù)。

該方案的前提與目的:

我們的目標(biāo)是重建當(dāng)初的x2的那種適配方式,有兩套資源,一套SD,一套HD。在此基礎(chǔ)上,做到座標(biāo)系通用,UI資源通用。僅僅是圖片的清晰度不同。這是對(duì)于中小團(tuán)隊(duì)來說最快速的適配方案。

下面貼核心代碼,修改AppDelegate::applicationDidFinishLaunching()函數(shù),加上如下代碼:

    CCSize frameSize = pEGLView->getFrameSize();
    if (frameSize.width == 640 && frameSize.height == 960)
    {
        //標(biāo)準(zhǔn)分辨率,不做調(diào)整
    }
    else if (frameSize.width == 640 && frameSize.height == 1136)
    {
        //標(biāo)準(zhǔn)分辨率,不做調(diào)整
    }
    else
    {
        CCSize winSize;
#ifdef HD_PORT_SCHEME
        if (frameSize.width*frameSize.height>=2073600) {//1080p分辨率
            //HD資源
           winSize=CCSize(1280, 1920);
            pDirector->setContentScaleFactor(2);
        }
        else{
            //SD資源
           winSize=CCSize(640,960);
        }
#else
        //SD資源
       winSize=CCSize(640,960);
#endif
                                                                                                                                                                                                                                                       
        //WHR寬高比 width height ratio
        float winSizeWHR = winSize.width / winSize.height ;
        float frameSizeWHR = frameSize.width / frameSize.height;
                                                                                                                                                                                                                                                       
        if (winSizeWHR > frameSizeWHR)
            pEGLView->setDesignResolutionSize(winSize.width, winSize.height, kResolutionFixedWidth);
        else
            pEGLView->setDesignResolutionSize(winSize.width, winSize.height, kResolutionFixedHeight);
    }

說明:

1.我們以960x640作為標(biāo)準(zhǔn)分辨率

2.以1080p判斷作為基準(zhǔn),來判斷是否啟用HD資源。

3.判斷寬高比,以決定縮放方向

4.HD_PORT_SCHEME宏來決定是否啟用HD適配方案,如果關(guān)閉,則全部設(shè)備上都是SD資源的低清方案。

其他注意事項(xiàng):

1.如果啟用HD方案,在高清設(shè)備上,場(chǎng)景根節(jié)點(diǎn)需要放大setScale(2)

2.如果啟用HD方案,觸摸時(shí)的座標(biāo)點(diǎn)需要處理,經(jīng)過換算變成960x640下的。好在這種代碼很少在觸摸回調(diào)時(shí)增加一下即可。

3.理論上,所有的工具輸出的資源都支持這種方式來做適配。也就是說,對(duì)于程序,策劃來說只用一套SD資源開發(fā)即可。美術(shù)先出HD圖,然后縮成SD提供給開發(fā)用。

題外話:對(duì)于很多復(fù)雜的游戲,UI和場(chǎng)景應(yīng)該是徹底分開來做的,因?yàn)檫@兩個(gè)需求不同,清晰度要求和資源提供也可能有很大差別,但是引擎本身似乎沒有考慮這一點(diǎn)。有些分支是做了的,把UI和場(chǎng)景拆成兩個(gè)節(jié)點(diǎn),這是不錯(cuò)的設(shè)計(jì)。

最后,本來還想做個(gè)詳細(xì)的例子,但是最新版引擎3.0beta2的工程模板老出問題,新建工程在win8上面始終無法打開,等穩(wěn)定一下再補(bǔ)吧。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:cocos2d-x自制工具09:復(fù)活!x2屏幕適配方案-創(chuàng)新互聯(lián)
地址分享:http://aaarwkj.com/article34/ccdise.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站建設(shè)、面包屑導(dǎo)航外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
日本免费精品人成视频| 国产91白丝在线观看| 97在线视频这里只有精品| 国产a情人一区二区国产| 久久久久久国产精品亚洲| 成人性生交大片免费看久久| 欧美日韩亚洲一区在线| 日韩一区二区三区不卡| 黄片大全视频在线免费观看| 久久精品国产亚洲av麻豆网站| 中文字幕乱码亚洲中文在线| 国产成人啪精品视频免费| 黄色成人av在线网站| 亚洲乱色一区二区三区丝袜| 欧美日韩精品在线二区| 日本道二区视频中文字幕| 日本韩国视频一区二区| 亚洲一区二区三区精品在线| 亚洲精品视频久久偷拍| 99人妻精品一区二区| 久久av天堂在线观看| 中文字幕乱码日韩一区| 老熟女露脸吞精一二三四区 | 国产一区欧美二区日韩三区| 欧美日韩国产精品综合| 日本伦理三级在线观看| 亚洲人成伊人成综合网中文| 精品av一区二区在线| 久久热精品视频这里有| 日韩精品国产一区二区在线| av资源中文字幕在线天堂| 国产a天堂一区二区专区| av在线手机中文字幕| 国产免费不卡午夜福利在线 | 日本午夜视频在线观看| 国产精品一区二区三区专区| 欧美日韩视频一区二区| 中文字幕日韩高清乱码| 日本一区二区国产在线| 国产精品大片久久激情四射| 亚洲国产精品福利在线|