`

Cocos2d API解析之TextureAtlas

阅读更多

TextureAtlas
(以下内容是:cocoachina的猪头解释的,原贴在:http://www.cocoachina.com/bbs/read.php?tid-8261.html)
供AtlasSpriteManager与AtlasSprite的材质类
从Texture2D继承而来,在其基础上增加了一个非常重要的成员变量
ccV3F_C4B_T2F_Quad *  quads
实际上AtlasSprite相比Sprite能快更得进行大批量渲染也是因为这个
TextureAtlas维护了一个ccV3F_C4B_T2F_Quad数组,使用一张texture进行batch render
其他与Texture2d没什么不同

这个过程是这样的:
1.首先是AtlasSpriteManager使用一张TextureAtlas初始化,并设定Quad数组的长度
2.往AtlasSpriteManager加入AtlasSprite,这个加入的过程其实只是往AtlasSpriteManager的Quad数组中更新一个Quad
3.渲染的时候使用一张Texture根据Quad数组中的不同值一个个渲染

支持的特征有:
1、地图集文件可以是PVRTC PNG 或者其他Texture2D支持的格式;
2、四边形可以在运行期间被添加、移除、重新排序
3、TextureAtlas 的capacity(包括ccV3F_C4B_T2F_Quad数组的容器)能够在运行期被增加或减少
4、OpenGL的组件:V3F,C4B,T2F
呈现的四边形是使用OpenGL ES的交错的顶点数组列表

textureAtlas = [[TextureAtlas textureAtlasWithFile: @"atlastest.png" capacity:3] retain];
//创建一个TextureAtlas ,capacity表示初始化ccV3F_C4B_T2F_Quad数组的长度
    ccV3F_C4B_T2F_Quad quads[] = {
        {
          //{{顶点坐标}, {顶点颜色},{顶点UV坐标}}
            {{0,0,0},{0,0,255,255},{0.0f,1.0f},},                // bottom left
            {{s.width,0,0},{0,0,255,0},{1.0f,1.0f},},            // bottom right
            {{0,s.height,0},{0,0,255,0},{0.0f,0.0f},},            // top left
            {{s.width,s.height,0},{0,0,255,255},{1.0f,0.0f},},    // top right
        },       
        {
            {{40,40,0},{255,255,255,255},{0.0f,0.2f},},            // bottom left
            {{120,80,0},{255,0,0,255},{0.5f,0.2f},},            // bottom right
            {{40,160,0},{255,255,255,255},{0.0f,0.0f},},        // top left
            {{160,160,0},{0,255,0,255},{0.5f,0.0f},},            // top right
        },

        {
            {{s.width/2,40,0},{255,0,0,255},{0.0f,1.0f},},        // bottom left
            {{s.width,40,0},{0,255,0,255},{1.0f,1.0f},},        // bottom right
            {{s.width/2-50,200,0},{0,0,255,255},{0.0f,0.0f},},        // top left
            {{s.width,100,0},{255,255,0,255},{1.0f,0.0f},},        // top right
        },
       
    };

LabelAtlas

LabelAtlas是一个 AtlasNode的类
LabelAtlas可以替代标签,因为它比标签快得多

  • LabelAtlas is MUCH faster than Label
  • LabelAtlas "characters" have a fixed height and width (字符可以固定宽度和高度)
  • LabelAtlas "characters" can be anything you want since they are taken from an image file 

BitmapFontAtlas is a subclass of AtlasSpriteManger.

Features:

  • Treats each character like an AtlasSprite. This means that each individual character can be:(它可实现AtlasSpriter的诸多功能)
    • rotated
    • scaled
    • translated
    • tinted
    • chage the opacity
  • It can be used as part of a menu item.
  • anchorPoint can be used to align the "label"
  • Supports Hiero format (http://slick.cokeandcode.com/demos/hiero.jnlp)


FNT文件是微软为应用软件编写的一种字体文件,也就是DOS时期所说的字库文件。

分享到:
评论

相关推荐

    cocos2d api

    "Cocos2d API"是指该框架提供的应用程序编程接口,开发者可以通过这些API来构建游戏逻辑、处理图形渲染、动画效果、音频管理以及用户输入等。 Cocos2d API主要包括以下几个核心模块: 1. **Director**:这是Cocos...

    cocos2d-x API中文文档

    【cocos2d-x API中文文档】是一份详尽的资料,主要涵盖了cocos2d-x游戏引擎的API,这份文档适用于2015年的最新版本。cocos2d-x是一个基于MIT许可证的开源游戏引擎,它以快速、简单且功能强大的特性闻名,允许开发者...

    cocos2d js api 中文文档

    Cocos2d-js API中文文档是一份非常重要的资源,它为开发者提供了全面的Cocos2d-js框架的接口和功能介绍。Cocos2d-js是一个基于C++开发的游戏引擎,它将Cocos2d-x的功能与JavaScript语言相结合,使得游戏开发更加便捷...

    Cocos2d的API

    Cocos2d的API文档通常包含详细的技术指导、类库参考以及方法描述,为开发者提供了一个高效索引的资料库。 在描述中提到的"chm"格式文件是一种Microsoft编写的帮助文件格式,全称为Compiled HTML Help,它可以将HTML...

    cocos2d api 文档

    cocos api 文档。我想大家都需要,就共享给大家,不用找的那么麻烦了

    cocos2d-3.0 api文档

    《cocos2d-3.0 API文档详解》 cocos2d-3.0是一款强大的2D游戏开发框架,广泛应用于iOS、Android以及其他多平台的游戏开发。它提供了丰富的功能和高效的性能,使得开发者能够轻松地创建出各种类型的游戏。这份文档是...

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    cocos2d-html5 API

    为了深入学习和使用Cocos2d-html5 API,开发者可以打开提供的参考文档,通过Google浏览器访问`cocos2d-x\www.cocos2d-x.org\reference\html5-js\index.html`。这个文档详细介绍了每个类、方法和属性,以及如何在实际...

    cocos2d-x API大全中文版2016

    《cocos2d-x API大全中文版2016》是一部详尽的参考资料,旨在为开发者提供关于cocos2d-x框架的全面理解和实践指导。cocos2d-x是一款广泛使用的开源游戏开发框架,它基于cocos2d,并且支持跨平台开发,包括iOS、...

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...

    cocos2d-x-cocos2d-x-2.2.2.zip

    此外,cocos2d-x的事件系统也是其核心特性之一。它允许开发者方便地处理触摸、键盘、鼠标等各种输入事件,构建出响应性强的交互界面。同时,它的动作(Actions)和动画(Animations)系统,让开发者能够轻松实现复杂...

    cocos2d-x 3.X 接收图片 base64 转码显示

    5. **创建纹理**:解码后的二进制数据是图片的原始像素信息,需要创建`cocos2d::Texture2D`对象来承载这些数据。你可以使用`cocos2d::Director::getInstance()->getTextureCache()->addImageAsync()`方法,传入解码...

    cocos2d-iphone~cocos2d-html5移植之旅

    ### cocos2d-iphone至cocos2d-html5移植之旅:深入解析与实践指南 #### 引言 在数字化时代,跨平台游戏开发成为了一种趋势,尤其在移动设备和网页端之间的转换变得日益频繁。《cocos2d-iphone至cocos2d-html5移植...

    cocos2d-html5-v2.2.3.zip

    Cocos2d是一个开源的游戏开发框架,而Cocos2d-x是它的C++版本,主要应用于移动设备。本文将深入探讨Cocos2d-html5,它是一个基于HTML5的版本,允许开发者使用JavaScript进行游戏开发,非常适合那些希望从其他领域...

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    《cocos2d-x 3.8:经典游戏引擎源码解析》 cocos2d-x 是一个跨平台的游戏开发框架,它基于C++,同时提供了Lua和JavaScript的绑定,让开发者可以方便地在多种操作系统上创建2D游戏、演示程序和其他图形交互应用。这...

    cocos2d-android jar包全套.zip

    在Android平台上,Cocos2d-x是一个基于C++的版本,提供了原生的编程接口,同时也支持Java API,方便Android开发者使用。"cocos2d-android jar包全套.zip"这个压缩包包含了在Android上使用Cocos2d开发游戏所需的所有...

    cocos2d-x3.6API参考手册.chm

    欢迎下载cocos2d-x3.6API参考手册(英文)。

    cocos2D-lua 核心编程内置代码

    《Cocos2d-lua核心编程内置代码》深入解析 Cocos2d-lua是一款基于Cocos2d-x引擎的轻量级游戏开发框架,它将强大的C++底层引擎与灵活易用的Lua脚本语言相结合,为游戏开发者提供了一个高效、便捷的游戏开发平台。在...

    cocos2d-x 案例开发大全 第二章(源码)

    9. **纹理(Texture)**:cocos2d-x使用Texture Atlas管理纹理,减少内存占用并优化渲染性能。纹理 atlases是包含多个小图的一张大图,用于批量加载和渲染。 10. **资源管理(Resource Management)**:cocos2d-x提供了...

    Cocos2d-x 3.4 API离线文档

    这个“Cocos2d-x 3.4 API离线文档”包含了所有关于这个版本的API详细说明,是开发者在编写游戏或应用时的重要参考资料。 Cocos2d-x 3.4 API主要由以下几个核心模块组成: 1. **渲染系统**:Cocos2d-x使用基于...

Global site tag (gtag.js) - Google Analytics