一个菜鸟程序员的游戏开发心得

 

    对于一个只在大学期间学习了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

 

     以上就是个人心得,固然,做为一个菜鸟确定有些地方说的不够全面或者不对的地方,但愿你们能够提一些意见,多多交流一下,后续我也会继续分享个人游戏开发心得,让后来的学弟学妹少踩坑,也是自个人不断学习。设计

相关文章
相关标签/搜索