一個菜鳥程序員的遊戲開發心得

 

    對於一個只在大學期間學習了JavaScript,實習期間學習了點HTML、CSS的菜鳥,作遊戲對我而言是一件想都不敢想的事情,後有幸被公司安排參與一款HTML5遊戲的開發,才使我真正第一次與遊戲來了次親密接觸。html

    此次開發的遊戲,界面佈局比較複雜,子界面也比較多,在開發的時候並無考慮太多,只是想着快些把遊戲效果作出來,快些看到遊戲效果,結果踩了不少坑,固然也有很多收穫:瀏覽器

 

  1. 圖集的妙用:圖集是將一些零散的圖片資源整合到一張大的圖片中,方便在項目中管理圖片資源。

好比,若是在遊戲中,有兩個UIImage節點,而且兩個節點的圖片資源是分散的,這時候要經過代碼來設置兩個節點的圖片資源的話,就必須經過game.assets.load()方法來一部加載圖片,載到圖片後在設置到對應的節點上;可是若是將圖片資源打包成圖集的話,要用到圖片資源的節點都引用這個圖集資源,須要改變顯示圖片的話,就只須要image.frame = ‘imageName.png’就能夠了,這樣即減小了服務器請求次數,也縮短了新資源的顯示時間。緩存

 

      圖集還有一個一個妙處就是能夠加強遊戲繪製性能,在WebGL渲染方式下,圖集的使用能夠減小繪製時圖集的頻繁切換,造成批量繪製,讓遊戲表現更流暢。可是要達到批量繪製的效果的話,UIImage節點就須要儘量的排布在一塊兒,爲何這麼說呢,在遊戲中少不了有文字的存在,若是在一堆的UIImage節點中添加了一個UIText節點的話,批量繪製就會被中斷,因此節點找對組織很重要,找錯了,性能就有可能大大的受影響。服務器

 

      上面提到的批量繪製也就在WebGL渲染方式下起效,可是目前移動端設備上的瀏覽器對WebGL的支持良莠不齊,存在很多的問題,所以遊戲發佈並不建議使用WebGL的渲染方式。建議使用Canvas的渲染方式發佈,我使用的青瓷引擎目前對Canvas的支持作了很多的優化,在瀏覽器適配上花了很大的功夫。佈局

 

      2. 頁面緩存:部分節點由不少部分組合而成,並且每一個組合部分,不多變更。若是將節點緩存爲一張圖片,那麼能夠減小繪製,提高性能。有鑑於此,提供了qc.CacheAsBitmap功能,將節點緩存爲圖片。具體使用及介紹能夠參考:http://docs.zuoyouxi.com/manual/BuildinComponents/CacheAsBitmap.html性能

     頁面的緩存並非用的越多越好,由於緩存是佔內存的,用多了,內存有可能會hold不住;還有一點是變化比較頻繁的節點也不適合使用緩存機制。學習

 

     3. 屏幕自適應:在遊戲開發中,分辨率適配問題是一個比較頭疼的問題,青瓷引擎提供了一套成熟的解決方案,讓你再也不爲分辨率適配問題頭疼。因爲比較複雜,我在這裏就不詳細介紹了,具體能夠參考:http://docs.zuoyouxi.com/manual/UI/AdapterResolution.html優化

 

      屏幕自適應的好處在於,設置了適合本身遊戲的顯示類型後,整個遊戲就能夠根據選擇的類型作一些絕對座標的佈局 ,好比,manualType選擇了Expend,referenceResolution設置了960*640的分辨率,那麼整個遊戲界面的座標佈局設計均可以根據960*640來設計,即便你在遊戲佈局中節點偏移值設置死了,界面的佈局也不會存在錯位問題。ui

 

     以上就是個人心得,固然,做爲一個菜鳥確定有些地方說的不夠全面或者不對的地方,但願你們能夠提一些意見,多多交流一下,後續我也會繼續分享個人遊戲開發心得,讓後來的學弟學妹少踩坑,也是自個人不斷學習。設計

相關文章
相關標籤/搜索