`
zhangziyangup
  • 浏览: 1187367 次
文章分类
社区版块
存档分类
最新评论

cocos2d学习笔记(二)CCSpriteBatchNode相关

 
阅读更多

说到cocos2d,就不得不说CCSpriteBatchNode


用CCSpriteBatchNode的好处:

1、减少OpenGL ES的bind call,这里简单说下图片的载入。当一张图片要显示时,首先它会被转为texture,之后装入内存,因为GPU大多认识解压后的图片(png是压缩格式的图片,GPU也可以处理一些压缩格式的,比如PVRTC),然后通过OpenGL ES把这张图片画到屏幕上,当一个场景载入大量图片时,势必会多次调用OpenGL ES,这样GPU都压力就会很大,帧数就掉下来了。使用CCSpriteBatchNode可以一次性的把当前场景所有的图片都载入进来,从而减少大量GPU的运算,帧数自然就高了

2、减少内存占用,其实这一点现在已经不是最重要的了,因为3gs以后的设备都支持NPOT(NON POWER OF TWO)了。老GPU保存texture的时候只能存为power-of-two的大小,也就是你都图片是50x50像素的,最后在内存中最后就变为64x64的了,那么64 * 64 - 50 * 50这么大块的内存相当于浪费掉了(实际上,CPU和GPU操作图片内存地址不是一个,所以当GPU操作图片的时候,这个图片还要被考到GPU能操作的内存区域,所以那部分浪费都内存还会再被拷贝一便)。而使用texture atlas就没必要担心这个了,texture atlas让你把一个一个的图片放到一起,然后一次性载入内存,这样那些每张图片都浪费一点的内存就会大大减少了。不过在cocos2d1.1中,默认只要设备支持NPOT,就会自动开启NPOT,我现在用的版本是1.0.0,在ccConfig.h中看到:

@deprecated This value will be removed in 1.1 and NPOT textures will be loaded by default if the device supports it.

所以科技的发展多么重要,让我们需要考虑的越来越少了,哈哈!


其实现在最重要的一点还是第一条


制作texture atlas比较好用的软件有:TexturePacker,链接我就不放了,这东西网上一搜就找到了


CCSpriteBatchNode的使用也很简单,首先用CCSpriteFrameCache载入frame file([CCSpriteFrameCachesharedSpriteFrameCache] addSpriteFramesWithFile:@"scene1atlas.plist"]),是一个plist文件,使用TexturePacker创建texture atlas的时候会自动生成,然后创建[CCSpriteBatchNode batchNodeWithFile:@"scene1atlas.png"]CCSpriteBatchNode对象并添加到CCLayer中,然后CCSprite通过- (id) initWithSpriteFrame:(CCSpriteFrame*)spriteFrame创建对象,最后CCSpriteBatchNode对象 addChild:CCSprite对象即可


分享到:
评论

相关推荐

    cocos2d 学习笔记

    本学习笔记将深入探讨cocos2d的核心概念、关键组件以及实际应用技巧。 一、cocos2d基本概念 1. Scene(场景):cocos2d中的基本构造单元,代表游戏或应用的一个完整状态,例如主菜单、游戏关卡等。 2. Layer(层)...

    Cocos2d-x学习笔记

    1. 下载并安装Cocos2d-x的最新版本,解压后获得源代码和相关工具。 2. 进入源代码目录,使用命令行工具,运行build-win32.bat脚本,编译整个框架。 3. 在编译完成后,运行install-msvc.bat脚本,安装所需的开发环境...

    cocos2d-x学习笔记

    《cocos2d-x学习笔记》 在学习cocos2d-x时,了解其核心组件和工作流程至关重要。AppDelegate是cocos2d-x框架中的一个关键类,它扮演着应用程序入口点的角色,处理应用程序的生命周期事件。让我们深入探讨...

    cocos2d学习资源汇总

    cocos2d-x学习资源汇总 cocos2d-x是一款功能强大且广泛应用于游戏开发的游戏引擎,由于其跨平台、开源、自由的特性,吸引了许多开发者的关注。以下是关于cocos2d-x的学习资源汇总,旨在帮助初学者快速入门和提高...

    cocos2d的学习资料

    Cocos2d是一款广泛应用于游戏开发、图形界面和2D应用程序的开源框架,它支持多种编程语言,包括Python(cocos2d),Objective-C(cocos2d-objc)以及C++(cocos2d-x)。这篇学习资料是针对cocos2d/x,特别是cocos2d-...

    【吼吼睡cocos2d学习笔记】第七章 - 4个很酷的类 代码

    通过阅读提供的"吼吼睡cocos2d学习笔记"第七章,你将能够深入理解这些类的工作原理,学习如何在实际项目中应用它们。同时,提供的CH07.xcodeproj文件可能是包含示例代码的工程,可以帮助你直接在Xcode环境中运行和...

    Cocos2D-X开发学习笔记-渲染框架之布景层类的使用示例

    本篇学习笔记主要聚焦于Cocos2D-X的渲染框架,特别是布景层类的使用,这对于构建游戏场景至关重要。 首先,我们要理解Cocos2d-x中的“布景层”(CCLayer)。在Cocos2D-X中,布景层是场景(CCScene)的一个子类,...

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

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

    Cocos2D-X2.2.3学习笔记3(内存管理)

    在Cocos2D-X2.2.3的学习过程中,内存管理是至关重要的一个环节,它直接影响到游戏的性能和稳定性。Cocos2D-X是一个跨平台的2D游戏开发框架,使用C++作为主要编程语言,并支持Lua和JavaScript。本笔记将深入探讨Cocos...

    Cocos2d-x学习笔记——完全掌握C++ API与游戏项目开发.zip

    本学习笔记旨在帮助开发者全面掌握Cocos2d-x的C++ API以及游戏项目的开发流程。 一、Cocos2d-x框架基础 Cocos2d-x是Cocos2d-x系列的C++版本,它提供了丰富的图形绘制、动画制作、音频播放、物理引擎等功能。Cocos2d...

    cocos2d-x-cocos2d-x-2.2.2.zip

    总的来说,cocos2d-x 2.2.2是一个功能完备、易于学习和使用的2D游戏开发框架。通过深入理解并掌握这个版本,开发者可以创建出运行在多种平台上的高质量游戏,享受到cocos2d-x带来的强大开发体验。无论是初学者还是...

    Cocos2D-X开发学习笔记-触屏事件使用示例

    本学习笔记将深入探讨如何在Cocos2D-X中处理触屏事件,让游戏能够响应用户的触摸操作。 首先,我们要了解Cocos2D-X中的触摸事件处理机制。在Cocos2D-X中,触屏事件主要通过`Touch`类和`TouchEvent`类来实现。`Touch...

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

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

    cocos2d-x学习笔记\cocos2d-x学习笔记(17)--简单游戏实例1--双枪手

    《cocos2d-x学习笔记(17)--简单游戏实例1--双枪手》 cocos2d-x是一款跨平台的2D游戏开发框架,基于C++,支持iOS、Android、Windows等多个操作系统。本笔记主要讲解如何使用cocos2d-x创建一个简单的双枪手游戏实例,...

    cocos2d-android.jar.zip_CoCos2d_android jar_android game_cocos2d

    cocos2d-android游戏引擎是著名游戏引擎cocos2d游戏引擎的Android版。cocos2d-android游戏引擎性能优越、易学、可以进行纯java编程、具有极高的研 究价值、大大的降低了开发者的学习成本。您只需要一台普通配置的...

    cocos2d-android jar包全套.zip

    Cocos2d是一款开源的游戏开发框架,被广泛用于创建2D游戏、演示程序和其他互动内容。在Android平台上,Cocos2d-x是一个基于C++的版本,提供了原生的编程接口,同时也支持Java API,方便Android开发者使用。"cocos2d-...

    cocos2d-x API中文文档

    这份API文档不仅提供了关于Cocos2d-x的基本信息,还深入到具体的技术细节,对于学习和使用cocos2d-x开发游戏的开发者来说,是非常宝贵的参考资料。通过这份文档,开发者可以了解如何利用cocos2d-x的API构建游戏场景...

    cocos2d-x 3.0

    1. 学习cocos2d-x 3.0的官方文档,了解其核心类和API。 2. 研究cocos2d-x社区的教程和示例项目,积累实战经验。 3. 探索Box2D物理引擎,提升游戏的物理表现力。 4. 实践编程,通过修改和调试代码,理解行走逻辑的每...

    Cocos2d-x实战:C++卷(2版)源代码

    在Cocos2d-x中,C++作为主要的编程语言,相比初版,第二版可能涵盖了更多Cocos2d-x的新特性和优化。C++的使用可以提供更好的性能和更直接的内存管理,同时也能充分利用面向对象编程的特性来构建复杂的游戏逻辑。 源...

    cocos2d学习教程

    《cocos2d学习教程》是一份针对初学者的详细指南,主要涵盖了cocos2d在iPhone游戏开发中的应用。cocos2d是一款强大的2D游戏引擎,它基于Objective-C语言,广泛用于iOS平台的游戏开发。这个教程通过一系列的章节,...

Global site tag (gtag.js) - Google Analytics