SpriteSheet(精灵列表)在Android中的应用

来源:互联网 发布:高性能网络编程 陶辉 编辑:程序博客网 时间:2024/04/30 14:52

概念

在自定义的界面中通常会有自定义view,尤其在一些2D小游戏当中,就会使用一连串的任务动作图片,这一串原始图片通常是美工修出来的一个个图片,组合在一起就是一个任务的一些列动作,当然也可以合成动态图:
精灵表单原始图片

在使用的时候当然也可以通过读取资源文件,一个一个的显示在界面上,但是通常图片资源文件会很多,就会显得工程很乱。cocos2d中有一个更加高效的方式,就是精灵表单SpriteSheet。SpriteSheet是将分散的一些列图片组合成异常图片,在使用的时候,通过图片上的位置和大小,将图片截取出来,显示在图片上。
这里使用到的工具是TexturePacker,该工具将图片组合到一起,同时保存原图在生成图片上的所有位置和大小的信息。生成的图片如下:
这里写图片描述
在图片上可以看到,生成的图片位置的顺序是错乱的,而且图片的长宽并不一样,图片中的每一个图片也没有对齐。这样做的好处就是有些表单生成后,会减少表单图片大小,节省空间,而且图片是可以旋转后生成到表单图片中。
在使用这样的表单图片的时候,由于位置和大小都是不同的,所以不能同通过简单的剪裁就能获取到完成的图片,需要更具图片的位置信息才能使用,TexturePacker工具会同时生成一个文档,包含图片的位置、大小、是否旋转。生成的格式可以通过设置,选择生成为xml、json或者其他的文件格式。文件如下:
这里写图片描述
这里写图片描述

得到这个文件之后,就可以同时将表单图片和plist文件放到安卓工程当中。使用的时候只需要解析plist文件得到对应图片的位置、大小等信息,解析的时候按照你选择生成的数据格式,如json,xml等。而且解析一次后,对于在次生成的图片,数据格式相同,就可以使用一样的解析方式。

github上面的一个解析的工程
https://github.com/saylorzhu/SpriteSheet

0 0
原创粉丝点击