<button id="u2w23"></button>

<tbody id="u2w23"><track id="u2w23"></track></tbody><dd id="u2w23"><track id="u2w23"></track></dd><button id="u2w23"><acronym id="u2w23"></acronym></button> <tbody id="u2w23"><noscript id="u2w23"></noscript></tbody>

  • <button id="u2w23"></button><li id="u2w23"><acronym id="u2w23"><cite id="u2w23"></cite></acronym></li>

  • Android游戲開發中的優化策略

    [來源] 達內    [編輯] 達內   [時間]2012-09-25

    預處理:盡可能地預處理游戲邏輯中的運算。比如游戲中經常要用到隨機數,就應該在游戲開始之前,生成足夠的隨機數供游戲邏輯調用,千萬避免使用系統自身的rand()函數。這種優化方式難度比較大,但是往往是突破瓶頸的最有效手段

      繪圖優化:

      1、臟矩形:每次都重繪整個背景圖,其實是非常浪費的,前后兩幀的圖其實只有很少的一部發生了變化,因此可以只重繪變化的部分。這是一種常用的繪圖優化方式,需要注意的是,android用了雙緩沖,也就是說,使用臟矩形的時候,需要連續繪制兩次才能完成對surface的刷新。

      2、卷屏:這是常用的一種方法,緩存整張背景圖,抽象出一個可視窗口,僅顯示窗口中的內容,窗口的移動方向與sprite相同,與背景運動方向相反。android游戲背景圖的分辨率一般與屏幕的相同,這種方法很少會被用到。

      引擎優化:

      1、流水作業化資源:簡單來說,就是整合資源,不用的資源就及時釋放,需要用到的資源再加載,類似流水線生產過程。比如,游戲加載過程中,當前關卡(場景、模式等等)使用不到的音樂或者圖像資源就全部釋放,僅加載需要用的資源;用不到的線程,不要讓它休眠,一定要把它干掉;如果有的資源只用得到一部分,那么就拆解開來,僅加載需要的部分。

      2、狀態轉移邏輯:游戲開發前一定要想清楚狀態轉移,冗余的狀態變化將損耗框架的整體性能,對游戲流暢性的影響以及后期修改的成本往往是遠遠超出預期的。不要怕費力,一定要認真優化狀態轉移過程。此外,activity之間切換、ui線程和游戲線程之間的切換,都是非常花費時間的,應該盡力避免。

      游戲邏輯優化:

      1、預處理:盡可能地預處理游戲邏輯中的運算。比如游戲中經常要用到隨機數,就應該在游戲開始之前,生成足夠的隨機數供游戲邏輯調用,千萬避免使用系統自身的rand()函數。這種優化方式難度比較大,但是往往是突破瓶頸的最有效手段。

      2、算法優化:這個沒有什么好多說的,算法功底和經驗積累很重要,單干搞不定的,趕快找同事幫忙。

      3、語法優化:語法對運行速度也有很大影響,比如for循環,不同的寫法,時間開銷差別極大

    資源下載

    ?