精通cocos2d-x必修知識(cocos2d高階碼農面試題)
以下是根據我開發cocos經驗,總結出新人掌握cocos引擎必須理解透徹的幾大塊重點知識,也是很多公司在面試時的重點,提供的教程導航都是我在看了多篇相關教程後,覺得講解的比較深入淺出的好教程,希望對大家有幫助(注:以下答案基於 cocos2d 2.x版本)
面試題一:請談談cocos2d的記憶體管理機制? 難度係數:3
解答:詳解cocos2d記憶體管理
面試題二:請談談cocos2d觸控機制? 難度係數:3.5
解答.詳解cocos2d觸控事件分發機制
面試題三:請談談cocos2d3.0渲染架構? 難度係數:4.5
解答.深入學習cocos2d3.0渲染架構
面試題四:cache機制原理是什麼?難度係數:3
新人答案:把新加進記憶體的資源做一個hashmap儲存,每一個資源加一個key。每次載入資源的時候,先查詢資源是否存在,存在直接返回,否則載入進記憶體。
面試題五:介紹下cocos2d的ActionManager以及各種Action機制? 難度係數:3.5
回答要點:單例,由CCDirector建立並維護,在init時已經被加入計時器,由一個hash表管理Action,Target作為key,每次update會遍歷hash表所有target的更新,已經完成的動作將會移除。
面試題六:減少記憶體開銷的方法有哪些,圖片壓縮方法有哪些?難度係數:3.5
及時釋放,減少洩露,重用資源,延遲載入,分部載入等。
一般的圖片是4通道32位,即一個畫素用4個位元組表示,每個位元組依次表示ARGB,即alpha,red,green,blue。那麼圖片佔用的記憶體可以算出。
壓縮畫素即減少圖片畫素點多少,記憶體即減少。但是圖片會變小。
壓縮圖片質量,即不用4個位元組表示一個畫素,如256色,就是用一個位元組表示一個畫素,每2個bit表示一個通道。但是圖片表現效果變差。
面試題七:是否瞭解CCNode,CCSprite,CCLabel的渲染過程? 難度係數:4
面試題八:簡單介紹下你所使用的cocos2d有哪些東西? 難度係數:3~5
libcocos2d:cocos基礎庫 主要封裝 動作、基本自定義資料型別、紋理、shader、粒子、文字、文字輸入、鍵盤、觸控、三方基本庫(base64、xml、uhash等)、配置還有其他一些雜七雜八的東東
libcocosDenshion: 主要就是聲音引擎
libExtensions:GUI擴充套件、cocostudio、cocosbuilder、spine編輯器支援、簡單網路封裝、簡單splite、AssetsManager
其他的還有指令碼引擎、物理引擎等