答Cocos2d-x问题,赢经典蓝牙手机游戏手柄和Cocos2d-x 3.X系列图书【获奖名单公布】

1
通过批次渲染BatchNode
使用缓存预先加载(各种Cache类)
2
帧动画 Animation

骨骼动画
Spine
cocostudio
cocosbuilder


2.x batchnode
3.x batchrender
批处理


序列帧和骨骼动画

1、
通过批次渲染的方法来优化精灵,开发中有些精灵图片所使用的纹理都是相同的,如果一张 一张的图片进行渲染势必会降低效率
使用缓存提前加载精灵。当我们使用纹理的时候可以制作一个loading界面,将将要用到的纹理加载到缓存中

2、
序列帧动画
创建方法
手动添加序列帧到Animation类
使用文件初始化Animation类

骨骼动画
使用Spine创建骨骼动画

  1.  使用 CCSpriteBatchNode,它的子节点 只能是CCSprite,这些子节点统一渲染一次。 但是需要使用同一张图 创建batchNode 和 sprite,另外这些sprite 有些动作做不了。
    

    用TP打包成大图,用CCSpriteFrameCache加载,我在想这样是不是就不频繁读文件了,每个精灵只是textureRect不同,其实是使用同一张纹理。而且大图边长是2^n,也许能节约点内存。

帧动画:把动画的各帧放在一张大图里面,创建一个sprite,隔一段时间 sprite 换一次 textureRect, 就形成了帧动画,这样方便在某一帧触发一个事件。
也可以用 CCAnimate::create(CCAnimation::createWithSpriteFrames(framesArray)) 来创建帧动画。
场景过渡的特效:CCTransition开头的一系列特效,调用create方法就能创建。
骨骼动画:我还没用过,原理可能是 父节点运动-》带动子节点-》带动孙子节点。。。。。。

如果我不幸中奖的话,不要给我源码,我要书。我最讨厌看源码

1、可以用一下两种方式来优化,CCTextureCache:贴图缓存,CCSpriteBatchNode:精灵集合类。CCTextureCache是CCTexture2D的一个缓存池,将图片缓存到内存中;使用CCSpriteBatchNode批量渲染,可以一次渲染绘制大量的相同精灵。
2、常用的动画效果是精灵帧动画

新手,只知道这些了……

前面的版主 都好凶!!
(1)通过批次渲染的方法SpriteBatchNode或使用缓存
(2)序列帧动画、骨骼动画 cocostudio
我也冒个泡~

版主,你们这么闹真的好么。。。


2.x batchnode
3.x batchrender


序列帧,骨骼动画

通过批次渲染的方法来优化精灵
使用缓存提前加载精灵
2。
序列帧动画
创建方法
手动添加序列帧到Animation类
使用文件初始化Animation类

骨骼动画
使用Spine创建骨骼动画

在cocos2d-x 2.x版本中,用CCSpriteBatchNode进行批量绘制精灵提高精灵的绘制效率。
在cocos2d-x 3.x版本中,引入了一个大招技术,叫做auto batching
2。
cocos2d-x里可以用的动画基本可以分为序列帧动画和骨骼动画。


2.x batchnode
3.x batchrender


序列帧,骨骼动画

复制如果正确也算回答正确吧?

1.Cocos2d-x中绘制大量精灵时,有哪些优化方法?
1、绘制大量精灵,可以使用batchnode进行优化,减少gl调用次数
2、只在要显示的时候绘制。
可以自己建立缓冲池,减少绘制数量
将已经不再使用的Node(屏幕外或者要删除的)放入缓冲池。
此时可以选择从它原有的父节点remove掉,但不要删除自身
removeFromParentAndCleanup(false),也可以选择不显示
3、Tiled地图的优化:
可以使用FastTileMap
也可以将不必要的图层数据改为对象层,然后在代码中使用缓冲池优化
将Tiled地图文件作为数据处理
4、将多张精灵合成一张,并且在游戏开始时预加载
5、对图片进行压缩,通常使用1024*1024、NPOT、pvr.ccz、RGBA4444的图片

2.Cocos2d-x中常用的动画有哪些?如何创建这些动画?
常用的动画有帧动画和骨骼动画
可以使用工具如cocostuido、cocosbuilder制作,也可以手动添加。
手动添加,如帧动画我的办法是,将动画的图片合成一张大图
使用SpriteFrameCache::getInstance()->addSpriteFramesWithFile预加载到缓存
使用Animation::createWithSpriteFrames
AnimationCache::getInstance()->addAnimation生成动画并且加载到动画缓存
使用时通过AnimationCache::getInstance()->getAnimation获取动画

1:
可以将精灵放到容器中,避免因精灵的重复使用导致的帧数过高
2:
这个大家都知道了 Animate和Animation


SpriteBatchNode ~批量绘制精灵 =.=我只会用这个~用Texturepacker打包后加载一下。。。


序列帧动画:CCAnimate::create() ←基本我都玩着玩意。。。
骨骼动画 :没创建过。。。看教程好像是要先创建一个骨骼动画然后加载。。。

新手表示~不是很会也不复制粘贴。。。把自己知道的写出来!

凑个数 :4::8::9::10::6::5::15::3::7::11::2::14::13::12::2::2::2::2:

  1. 批次渲染
    拼接成大图

将地图块缓存起来,作为一个图片

帧序列 骨骼动画

1.大量相同的图片的话可以用批次渲染CCSpriteBatchNode,大量不同的话用缓冲区CCTextureCache和CCSpriteFrameCache,还可以使用CCTexture的异步加载addImageAsync
2.序列帧和cocostudio的骨骼动画
序列帧通过用TexturePacker打包小图成大图来创建
骨骼动画要先在cocostudio中创建好骨骼动画再在cocos2d-x中调用

1.Cocos2d-x中绘制大量精灵时,有哪些优化方法?
可以使用缓存,把精灵加入缓冲,需要即可拿出来也可以用批量渲染来优化还有可以优化精灵本身!
2.Cocos2d-x中常用的动画有哪些?如何创建这些动画?
(1)序列帧,创建方法用TexturePacker
(2)CocoStudio骨骼动画,创建方法是使用 CocoStudio 的动画编辑器来创建动画,加载到程序中即可!


2.x batchnode
3.x batchrender


序列帧,骨骼动画

  1. 使用SpriteBatchNode
    使用RenderTexture将画布上东西,绘制到一个材质上
    将使用的材质提前加到缓存可以提高创建效率 TextureCache SpriteFrameCache
  2. 序列帧动画 Aniamte
    骨骼动画Armature