游戏中会存在大量的景色,注意观察的用户会发现这些景色大部分都是重复的,本节课将讲述开发者如何在开发的过程中使用有限的一些素材拼凑出这些景色。
地图的使用
在游戏中,经常会用到地图tilemap,如果直接使用大图片,会非常占用资源,所以cocos2dx增加了2个类TMXTileMap和TMXLayer,用于创建map。准备工作:先准备几个png素材,使用Zwoptex将这些素材组合在一起,然后使用地图编辑器tiled,做成地图tmx格式文件,然后将组合在一起的大图png以及tmx文件一起放入resource,准备工作就做好了。传入参数是由工具tiled创建的tmx地图,tmx是一个xml文件,还需要将地图对应png文件放入resource。然后在project中创建一个元素TMXTiledMap,使用该类的create方法,传入参数为tmx格式的文件名,创建出来后,直接addchild到layer中即可,注意,如果project中存在LayerColor类元素,那么要注意addchild的顺序,并且cocos2dx有2个TMXTiledMap类,一个在cocos2d命名空间下,一个在experimental命名空间下,experimental下的TMXTiledMap类创建的实例在实际render中,绘制更少的vertex,这样速度会更快,得到更高的fps。并且可以获取地图上的图层、对象、属性等信息
关于cocos2d命名空间下的TMXTiledMap类,以及在experimental命名空间下的TMXTiledMap类,本demo左下角的第一行可以清楚的看到,如果不绘制地图,只绘制几十个vertex,但是绘制地图,就上升到4000多个vertex,粒子系统的原因又增加了4000多个,粒子系统消失后增加的4000多个就会消失。这个demo中使用的是experimental命名空间下的TMXTiledMap类,如果使用cocos2d命名空间下的TMXTiledMap,vertex就需要6000多个,所以cocos2d::experimental::下的TMXTiledMap,减少了1/3的vertex,性能大幅度提高。除此之外暂时没有发现这2个TMXTiledMap类的区别。
在使用tilemap创建地图的时候,可以使用多个素材图片,也可以创建多个层layer,多个层有前后顺序,还有alpha值做blend。
笔者制作网站的目的,主要是借用自己之前的知识背景(Android App开发和图形学知识),将自己学习笔记拿出来,和大家一起进行交流,毕竟每个人的知识体系不同,有交流才会有提高,所以欢迎大家通过各种方式和我联系。
网址:www.geekfaner.com
youku教学视频:http://i.youku.com/geekfaner
“百度传课”教学视频(高清版_推荐):http://www.chuanke.com/s2588605.html