自學(xué)研究Cocos Creator中整理記錄的一些比較重要的知識點迹栓,作一些記錄方便自己查詢,會不定期更新倍谜。
一迈螟、Cocos Creator相關(guān)
1.屏幕分辨率和異形屏適配
適配各種分辨率和屏幕比例:
這個Cocos Creator已經(jīng)做的很完善了,使用起來也比較簡單尔崔。
Cocos官網(wǎng)文檔教程說明答毫,也是Cocos Creator適配屏幕的基礎(chǔ)知識:
http://docs.cocos.com/creator/manual/zh/ui/multi-resolution.html
http://docs.cocos.com/creator/manual/zh/ui/widget-align.html
主要是使用Canvas作為根節(jié)點,然后使用widget組件防止可交互內(nèi)容跑出屏幕外季春。
適配異形屏:
參考知乎一個關(guān)于unity適配iPhoneX的思路https://www.zhihu.com/question/68199219/answer/262488809
自己目前的想法是洗搂,canvas的Fit Height和Fit Width都不勾選(為了不產(chǎn)生黑邊,代價是會有裁剪载弄,但是裁剪總比黑邊好)耘拇,在canvas下創(chuàng)建兩個節(jié)點,一個是游戲背景background宇攻,使用widget組件使其鋪滿canvas(widget的top惫叛、left、bottom逞刷、right均設(shè)置為0px)嘉涌,background會隨分辨率比例變化會有裁剪妻熊,但會始終保持沒有黑邊全屏覆蓋;還有一個是safe_area仑最,這個safe_area安全區(qū)作為所有可交互節(jié)點的根節(jié)點扔役,safe_area的子節(jié)點要使用widget保證自己不會超出safe_area。只要保證safe_area的位置和尺寸正確警医,不被劉海遮住亿胸,那么所有的可交互節(jié)點便也不會被劉海遮住了。所有只需控制好safe_area的widget組件的top预皇、left侈玄、bottom、right就好了深啤。具體要在代碼中讀取當(dāng)前手機(jī)設(shè)備的信息拗馒,并設(shè)置好safe_area的widget的值路星。
二溯街、JavaScript相關(guān)
1.JavaScript的單線程解疑
作為一名使用Java的Android開發(fā)者,用js寫網(wǎng)絡(luò)請求時洋丐,怎么也找不到怎么開多線程異步處理呈昔。后來才了解到j(luò)s使用的是單線程,這篇文章講解得很好https://blog.csdn.net/w2765006513/article/details/53743051
js中異步操作setTimeout https://zhuanlan.zhihu.com/p/26962590
簡單總結(jié)來說友绝,js是單線程模型堤尾,js代碼都是在一個線程中執(zhí)行的,無法手動開啟新線程執(zhí)行操作迁客,但js調(diào)用http網(wǎng)絡(luò)請求郭宝、讀取文件等常用耗時操作的api,執(zhí)行時會自動在別的工作線程中執(zhí)行掷漱,此外還會提供一些事件的回調(diào)粘室,例如http請求完成、超時等事件卜范,回調(diào)回js執(zhí)行的主線程中去衔统。你只需關(guān)注一些事件的回調(diào),在回調(diào)方法中執(zhí)行你自己的邏輯海雪。但是對于代碼中需要進(jìn)行的一些復(fù)雜耗時的算法計算锦爵,可能需要通過jsb調(diào)用C++開啟新線程執(zhí)行了。