真3D麻將遊戲桌面適配任意解析度

2021-10-02 02:50:10 字數 1771 閱讀 2466

大部分同學應該都處理過2d麻將桌的適配,從iphonex(目前最長的移動裝置)到ipad(目前最短的移動裝置)

無非就是根據長寬比來選擇最適合的適配方式。麒麟子之前寫過一遍,傳送門:棋牌ui全解析度適配方案

但3d的適配則不是通過縮放來的,因為3d看到的畫面,大部分是調整攝相機引數得來的。我們常見的裝置有以下解析度

2.16 : 1  iphonex系列為代表

2:1 華為、小公尺等2023年後出的android手機為代表

16:9 蘋果6以及同時期的android手機為代表

1024:768 ipad為代表。

麒麟子開啟了麻將的代表作,歡樂麻將。在不同裝置下玩了一圈後總結出了歡樂麻將的適配規則。

1、設計解析度是 16:9, (常見的就是1280 x 720)

2、在寬於16:9的裝置上,它什麼都沒做,只是簡單地把桌面保持左右撐滿。

3、在高於16:9的裝置上,它會保持左右兩邊不變,讓高顯示得更多一點。

要實現以上目標,我們需要做如下處理就行。

1、u3d編輯器中,使用16:9的預覽視窗,調整好攝相機和畫面。

2、切換為1024x768的解析度,保持攝相機不動(最好是在執行模式下調,這樣16:9的引數就不會影響),調整好桌面的縮放和位置。

3、記錄下1024x768的引數 縮放和位移。

4、在**中,通過真實橫縱比(寬/高) 與 設計橫縱比(1280/720) 進行比較

a、如果更寬(真實橫縱比 > 設計橫縱比),則將背景的scalex放大,放大倍數 = 真實橫縱比 / 設計橫縱比。

b、如果更高(真實橫縱比 > 設計橫縱比),則將桌面縮小和位移。

縮小的方式就是插值, 設計解析度下的縮放和位移,我們作為初值,1024 x 768下的值作為目標值(剛剛u3d編輯器中編輯的時候,我們需要把這個值記下來)。 插值的計算如下:(**中的laya.stage.height / laya.stage.width 就是真實高/真實寬,大家根據自己用的引擎來調整 即可)

let fromratio = 720 / 1280;

let targetratio = 768 / 1024;

let curratio = laya.stage.height / laya.stage.width;

let factor = (curratio - fromratio) / (targetratio - fromratio);

有了這個factor我們只需要做乙個線性插值,就能得到不同解析度下的桌面縮放和位移了。

最後上幾張圖

**與工程相關比較多,不方便抽出來,如果有需要的朋友,可以聯絡我一起**。

ubuntu 安裝 3D桌面

先說明一下我的電腦配置 p4 2.66 雙核 2g記憶體 160g硬碟 945g扳載顯示卡 準備就緒,先安裝ubuntu 6.10,同事問我哪兒下的?暈!接下去就開始安裝xgl了 先sudo gedit etc apt sources.list 編輯sources.list檔案 開啟universe...

ubuntu 安裝 3D桌面

先說明一下我的電腦配置 p4 2.66 雙核 2g記憶體 160g硬碟 945g扳載顯示卡 準備就緒,先安裝ubuntu 6.10,同事問我哪兒下的?暈!接下去就開始安裝xgl了 先sudo gedit etc apt sources.list 編輯sources.list檔案 開啟universe...

漂亮的3D桌面

偶然的機會,在網上看到某人對nvidia在linux的驅動的評價。說實在的,當時我對我裝的173驅動也不滿意,太卡!就心裡癢癢的,於是乎,從官方下最新的beta版驅動177.在網上看到cuda什麼的,覺的他很牛xx,就把驅動裝上去了。很不錯。再按這個牛人的說法,把xorg.conf也改改,開啟某些功...