关于cocos2dx开发中的图片资源的一些小技巧

有一定工作经验的游戏开发者都知道游戏运行中内存占用最大的莫过于图片资源,所以关于图片资源的管理需要有一定的把握,一般开发中使用的格式为png格式,因为这种格式是全彩色,然而jpg是不支持透明度的,而且png的压缩率比较高,这样有一个好处就是,程序在读取图片资源的时候开辟的临时存储空间会较小。

我们来看一下cocos2d-x中支持的像素格式:

enumclass PixelFormat

    {

        //! auto detect the type

        AUTO,

        //! 32-bit texture: BGRA8888

        BGRA8888,

        //! 32-bit texture: RGBA8888

        RGBA8888,

        //! 24-bit texture: RGBA888

        RGB888,

        //! 16-bit texture without Alpha channel

        RGB565,

        //! 8-bit textures used as masks

        A8,

        //! 8-bit intensity texture

        I8,

        //! 16-bit textures used as masks

        AI88,

        //! 16-bit textures: RGBA4444

        RGBA4444,

        //! 16-bit textures: RGB5A1

        RGB5A1,

        //! 4-bit PVRTC-compressed texture: PVRTC4

        PVRTC4,

        //! 4-bit PVRTC-compressed texture: PVRTC4 (has alpha channel)

        PVRTC4A,

        //! 2-bit PVRTC-compressed texture: PVRTC2

        PVRTC2,

        //! 2-bit PVRTC-compressed texture: PVRTC2 (has alpha channel)

        PVRTC2A,

        //! ETC-compressed texture: ETC

        ETC,

        //! S3TC-compressed texture: S3TC_Dxt1

        S3TC_DXT1,

        //! S3TC-compressed texture: S3TC_Dxt3

        S3TC_DXT3,

        //! S3TC-compressed texture: S3TC_Dxt5

        S3TC_DXT5,

        //! ATITC-compressed texture: ATC_RGB

        ATC_RGB,

        //! ATITC-compressed texture: ATC_EXPLICIT_ALPHA

        ATC_EXPLICIT_ALPHA,

        //! ATITC-compresed texture: ATC_INTERPOLATED_ALPHA

        ATC_INTERPOLATED_ALPHA,

        //! Default texture format: AUTO

        DEFAULT =AUTO,

        

        NONE = -1

    };

关于以上格式中有一部分的格式后面跟随着一些阿拉伯数字,代表的意思是颜色的位所占的内存大小,单位为bit,计算机图形学中对于计算机的颜色缓存的大小是有这么介绍的

size = (picWidth*picHeight)*(r + g + b)bit;如RGB565这种格式所占的内存大小为(picWidth*picHeight)*(5 + 6 + 5);在texture2d这个类里面有一个函数

staticvoid setDefaultAlphaPixelFormat(Texture2D::PixelFormat format);

(1)由此我们可以自定义设定游戏中纹理的默认像素格式,以更好地把握游戏的内存占用,也可以控制包的大小;

(2)PVR这种格式目前只支持苹果上使用,可以被ios的显卡直接读取,因此具有比png更好的效率以及更小的内存,推荐读者在实现跨平台开发过程中把握安卓跟ios的资源管理;

至于资源管理器,读者可以参考以上自行实现


发布了39 篇原创文章 · 获赞 17 · 访问量 12万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章