cocos2dx cc.SpriteBatchNode运用
来源:互联网 发布:淘宝大众评审 编辑:程序博客网 时间:2024/05/13 19:57
前言:众多周知,batchNode可以降低drawCall提高渲染效率。原因为batchNode使用一次渲染,批次生成多个sprite。batchNode同时可以将N张切割的散图整合成一张大图,提供给GPU渲染,以下贴出本人试验出的一些配套用法。
第一种方法:-- 根节点。 local layer = cc.LayerColor:create(cc.c4b(0, 100, 100, 100))-- 加载纹理到内存。local spriteFrameCache = cc.SpriteFrameCache:getInstance()spriteFrameCache:addSpriteFrames("building.plist","building.png")-- 直接通过大图创建。local batchNode = cc.SpriteBatchNode:create("building.png")layer:addChild(batchNode)-- 从内存拿出与创batchNode相同大图里面小图的纹理加入到batchNode即可。local spr = display.newSprite("#building/build_city.png")batchNode:addChild(spr)以上:1,往纹理缓存添加大图资源。 2,创建一个以1添加的大图为资源的batchNode。 3,同个内存取出与1中plist配置路径的纹理散块,添加到batchNode。 4,将layer加入到场景中即可看到DrawCall为1。同样有第二种方法:-- 通过batchNode取出其在内存中的纹理,此时创建的图片为一整张加载的图片。local spr = cc.Sprite:createWithTexture(batchNode:getTexture())batchNode:addChild(spr)第三种方法:-- 通过batchNode取出其在内存中的纹理,只取出从0,0开始宽高为100的纹理。local spr = cc.Sprite:createWithTexture(batchNode:getTexture(), cc.rect(0, 0, 100, 100))batchNode:addChild(spr)ps:当然,往batchNode里面addchild的时候,不能添加与之本身纹理相异的纹理块。彩蛋:其实第一种方法,可以解决在设置orbitCamera的时候,渲染超出屏幕的出现的黑边。:)local function Set3dView(root) local orbit = cc.OrbitCamera:create(0,1,0,0,-20,90, 0) root:runAction(cc.Sequence:create{orbit})end
阅读全文
0 0
- cocos2dx cc.SpriteBatchNode运用
- SpriteBatchNode
- cocos2dx-js cc.DrawNode
- quick-cocos2dx 中的cc({})
- cocos2dx-3.0(14)------SpriteBatchNode与SpriteFrameCache加快渲染
- cocos2dx-3.0(13)------SpriteBatchNode与SpriteFrameCache加快渲染
- cocos2dx 3.x sprite 和spriteBatchNode的认识
- cocos2dx-3.0(13)------SpriteBatchNode与SpriteFrameCache加快渲染
- cocos2dx-3.0(13)------SpriteBatchNode与SpriteFrameCache加快渲染
- cc笔记:cocos2dx 常见动作
- Cocos2dx-js cc.Class的实例化
- CC++初学者编程教程(16) 搭建Xcode cocos2dx开发环境
- cocos2dx+lua中cc.EventListenerMouse:create()的bug
- cc随笔:cocos2dx 创建无限滚动的移动背景
- CC++可变参数stdarg.h中的余数运用
- cocos2dx 3.0 函数指针 lambda 运用
- 运用Python运行cocos2dx-lua/js项目
- cc
- 这是抱怨吗?或许是吧!
- JavaMail开发教程01开山篇
- HDU1242或ZOJ1649(BFS+优先队列)
- Java基础总结第(1)天
- C++ 设计模式
- cocos2dx cc.SpriteBatchNode运用
- rand()和srand()产生为随机数方法
- CentOS7开机时的菜单选择时间由5秒缩短为2秒
- Shop项目--2.动态获取最新商品和热门商品
- C++ 句柄类
- stdint.h: No such file or directory的解决办法
- 一些提升技能的好书
- cdn 导致跨域问题
- 小朱opengl学习笔记(二)-----小白入门案例介绍