`
wangweike
  • 浏览: 66631 次
  • 性别: Icon_minigender_1
  • 来自: Mars
社区版块
存档分类
最新评论

CCTexture2D

 
阅读更多
1.在加载图片之前,转换像素格式
    默认情况下,cocos2d里面加载图片,图片是作为作为32位加载进来的。这意味着每个像素占4个字节的内存空间。当需要非常高质量的显示效果时非常好!但是有时候需要折中一下,因为以前的设备内存很有限,如果全部使用32的像素格式来加载图片的话,会造成内存消耗过多。
    当加载大的图片的时候(比如背景图片),最佳实践是使用16位的像素格式来加载–也就是牺牲一点质量来减少内存开销。cocos2d里面有很多不同的像素格式 –这个教程中,我们选择16位的像素格式,RGB565,因为背景一般不需要透明效果。(少了Alpha通道,RGBA就是有Alpha通道)

示例
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGB565];
background = [CCSprite spriteWithFile:@"blue-shooting-stars.png"];
background.anchorPoint = ccp(0,0);
[self addChild:background];
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_Default];


2.CCSpriteFrameCache加载的是一张拼接过的大图,每一个小图只是大图中的一个区域,这些区域信息都在plist文件中保存。用的时候只需要根据小图的名称就可以加载到这个区域。

CCTextureCache 是普通的图片缓存,我们所有直接加载的图片都会默认放到这个缓存中,以提高调用效率。

addImage的参数是资源中的直接存在图片文件名
[[CCTextureCache sharedTextureCache] addImage:@"stars.png"];

3.调用CCSpriteFrameCache的addSpriteFramesWithFile方法,然后把Zwoptex生成的plist文件当作参数传进去。这个方法做了以下几件事:

•寻找工程目录下面和输入的参数名字一样,但是后缀是.png的图片文件。然后把这个文件加入到共享的CCTextureCache中。
•解析plist文件,追踪所有的sprite在spritesheet中的位置,内部使用CCSpriteFrame对象来追踪这些信息。

4.优化cocos2d/x程序的内存使用和程序大
http://xiaominghimi.blog.51cto.com/2614927/1085955
  iOS和android游戏纹理优化和内存优化
http://www.verydemo.com/demo_c89_i33080.html
分享到:
评论

相关推荐

    Cocos2D-CCRenderTexture-Demo.zip_CCRenderTexture_DEMO_cctexture2

    `CCTexture2D`通常用于加载和管理静态图像纹理,而`CCRenderTexture`则允许动态生成和修改纹理。`CCTexture2DMutable`可能是`CCRenderTexture`内部使用的一个变体,它支持在运行时对纹理内容进行修改。 在本示例中...

    Cocco2D-iPhone-04.rar_Cocco2D iPhone_cocos2d_cocos2d-x_iphone 游戏

    5. **音频处理**:了解如何在Cocos2D中集成音频,使用如CCTexture2D和CCLabelTTF进行文本显示,以及如何播放背景音乐和音效。 6. **游戏逻辑与得分系统**:学习如何编写游戏规则和逻辑,设置得分系统,并将玩家的...

    iOS游戏应用源代码——jotaeme1212-Ejemplos-en-Cocos2D.zip

    开发者可以使用`CCTexture2D`加载并显示图片,而`CCAudioPlayer`则用于播放背景音乐和音效。示例可能展示了如何在游戏运行时动态加载和播放音频,以增强游戏的沉浸感。 最后,Cocos2D还支持粒子系统、Tiled地图编辑...

    cocos2d-3.0 api文档

    4. CCTexture2D:处理图像纹理,为精灵提供图像数据。 三、动作与效果 1. CCAction:定义了一系列操作,如移动、旋转、缩放、淡入淡出等,可以应用到CCNode对象上。 2. CCAnimate:用于播放动画序列,通常配合...

    cocos2d-x 读取zip的代码

    CCTexture2D* texture = new CCTexture2D(); texture->initWithImage(img); CCSprite* sprite = CCSprite::createWithTexture(texture); ``` 创建的`CCImage`对象进一步被用于初始化一个`CCTexture2D`对象,即图像...

    cocos2d-x API大全中文版2016

    此外,cocos2d-x还提供了丰富的图形绘制功能,如CCDrawNode可以绘制线条、多边形等几何形状,CCLabel用于创建文本标签,以及 CCTexture2D 和 CCSpriteFrameCache 用于处理纹理和精灵帧。在物理引擎方面,cocos2d-x...

    cocos2d-x 2.2.1 api 中文版

    9. **纹理(Texture)**:`CCTexture2D`类管理游戏中的纹理资源,包括加载、缓存和重复使用。 10. **动画(Animation)**:通过`CCAnimation`类,开发者可以创建和播放精灵帧序列,实现复杂的动画效果。 11. **...

    IOS应用源码之cocos2d-cocos2d-iphone-Release_1.1-88-g95fc5a4.zip

    5. CCTexture2D:纹理管理,负责图像资源的加载和缓存,优化内存使用。 6. CCDirector:导演类,管理场景的切换、渲染流程和时间步进。 7. CCNode:节点类,作为所有可见对象的基类,具备坐标系统、变换矩阵等基本...

    cocos2d中 获取动画当前帧数1

    在Cocos2d-x中,动画通常由一系列的精灵帧(SpriteFrame)组成,每个精灵帧对应于一个单独的图像(纹理,CCTexture2D)。当我们创建动画时,会基于这些纹理生成精灵帧,并将它们组织成一个动画序列。这样,我们就...

    cocos2d-x 2.2 api

    7. **音频管理**:`CCTextureCache`用于管理纹理资源,`CCTexture2D`类处理图像数据。同时,`CDAudioManager`和`SimpleAudioEngine`负责音频播放和管理。 8. **渲染系统**:Cocos2d-x基于OpenGL ES进行渲染,`...

    iOS实例开发源码——lhunath-Cocos2D-iPhone.old-9ab3d34.zip

    3. CCTexture2D:纹理管理类,涉及图片加载和纹理 atlasing 的实现。 4. CCSpriteFrameCache:精灵帧缓存,用于存储和复用精灵帧数据,优化内存使用。 5. CCMenu和CCMenuItem:菜单和菜单项的实现,用于创建用户交互...

    cocos2d-x学习笔记(14)--CCTextureCache .rar

    这个方法会解析文件,创建一个CCTexture2D对象,并将其存储在缓存中。如果同一个文件被多次加载,CCTextureCache会检查是否已经存在该纹理,从而避免重复加载。 2. 获取纹理:使用`getCachedTextureForImage(const ...

    《君王2》与cocos2d-x的邂逅

    3. **自定义纹理格式**:《君王2》开发了一套自定义的纹理格式,并扩展了CCTexture2D类。这种压缩纹理格式相比PNG24格式可以节省4至8倍的内存占用,并大幅提高了图片加载速度。程序能够根据平台类型决定下载何种格式...

    ios-绘图工具.zip

    同时,` CCTexture2D `类用于加载和管理图像纹理,这些纹理可以作为绘图的基础,也可以用于创建精灵。 4. **几何形状绘制**:使用`CCDrawNode`的`drawRect:`、`drawCircle:`、`drawPolygon:`等方法,可以直接在屏幕...

    cocos2dx实现疯狂的小鸟源码

    在cocos2dx中,我们使用`CCSprite`类加载和显示图片,`CCTexture2D`用于管理纹理,`CDAudioManager`处理音频播放。资源管理是游戏性能优化的关键,cocos2dx提供了`CCFileUtils`类来便捷地访问和加载资源。 Classes...

    代码控制3D文件中node的material范例

    let texture = CCTexture2D(imageNamed: "texture.png") material.diffuseTexture = texture ``` 通过这种方式,开发者可以在不改变3D模型本身的情况下,实现丰富的视觉效果和交互体验。 总结来说,"代码控制3D...

    cocos2dx 雷电MoonWarriors_游戏源码

    CCTexture2D *shipTexture = CCTextureCache::sharedTextureCache()->addImage(s_ship01); CCSprite *life = CCSprite::createWithTexture(shipTexture, CCRectMake(0, 0, 60, 38)); life->setScale(0.6); life-...

    GameEdits.zip_Windows编程_C/C++_

    1. **纹理加载**:使用` CCTexture2D `类来加载精灵表文件,如PNG或JPG格式的图片。 2. **纹理切割**:通过` CCRect `定义切割区域,可能使用自定义的算法或Cocos2D-x的` CCTextureAtlas `类来完成。 3. **精灵...

    Sprite_Sheet_Animation:在cocos2dx for android平台使用精灵表创建动画

    CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("sprites.png"); // 获取精灵帧 CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("sprites.plist"); // 创建...

Global site tag (gtag.js) - Google Analytics