Cocos2dx 3.1.1 学习笔记整理(3):逐帧动画
以下代码是在cocos中使用,plist+png 还有SpriteBatchNode播放动画的代码,备份一下,以防git被墙:
bool GameMain::init()
{
if( !Layer::init())
return false;
Size visibleSize = CCDirector::sharedDirector()->getVisibleSize();
bg = Sprite::create("battle.png");
bg->setPosition(visibleSize.width/, visibleSize.height/);
addChild(bg); auto batchNode = SpriteBatchNode::create("huangfeihu.png",);
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("huangfeihu.plist"); Vector<SpriteFrame*> hfhFrames();
char str[] = {};
for( int i = ; i < ; i++ )
{
sprintf(str, "huangfeihu%d.png",i);
auto frame = SpriteFrameCache::getInstance()->spriteFrameByName(str);
if( frame != NULL )
hfhFrames.pushBack(frame);
} for( int j = ; j < ; j++ )
{
auto hfh = Sprite::createWithSpriteFrameName("huangfeihu0.png");
auto anim = Animation::createWithSpriteFrames( hfhFrames,0.05f );
hfh->runAction(RepeatForever::create( Animate::create(anim)));
hfh->setPosition(visibleSize.width*rand()/RAND_MAX, visibleSize.height*rand()/RAND_MAX);
batchNode->addChild(hfh); }
this->addChild(batchNode);
return true;
}
结果如下:

2014-6-26补:
刚才在cocos2dx官网看了下cocos2dx-3.x的版本更新内容。发现以下:
New Renderer
Features of the new renderer:
- It has been decoupled from the Scene Graph. The
draw()method, instead of "drawing" it sends aRenderCommandto theRenderer, andRendereris responsible for drawing the queuedRenderCommandcommands.QuadCommands(used bySpriteandParticleSystemobjects) will be automatically batched.CustomCommandobjects allow the user to use custom OpenGL code, using a API similar to v2.2GroupCommandobjects allow to have "stacks" in the Renderer with different OpenGL values.- Auto-culling for
Spriteobjects (although, technically, Auto-culling is not performed inRenderercode, but in theSpritecode)- Global Z ordering (local Z ordering is still supported)
Renderer features
Auto-batching
Auto-batching means that the
Rendererwill package "multiple draw calls" in just one "big draw call" (AKA batch). In order to group "draw calls" certain conditions are needed:
- It only works with
QuadCommandcommands (used by Sprite and ParticleSystem objects)- The
QuadCommandsmust share the same Material ID: same Texture ID, same GLProgram and same blending function- The
QuadCommandsmust consecutiveIf those conditions are met, the
Rendererwill create create a batch (one draw call) with all thoseQuadCommandobjects.In case you are unfamiliar with the OpenGL best practices, batching is very important to have decent speed in your games. The less batches (draw calls) the more performance your game is going to be.
Sprite vs. SpriteBatchNode
To summarize:
- Keep putting all your sprites in a big spritesheet
- Use the same Blending Function (just use the default one)
- Use the same Shader (just use the default one)
- And don't parent your sprites to a
SpriteBatchNode
大意是在cocos2dx 3.x中尽量避免使用SpriteNodeBatch,
尽量将Sprite的素材放到一个SpriteSheet中,
因为Sprite是使用QuadBatchCommand去渲染的,
而QuadBatchCommand默认是batch(批处理的)的。
原文参考:
https://github.com/cocos2d/cocos2d-x/blob/cocos2d-x-3.0/docs/RELEASE_NOTES.md
Cocos2dx 3.1.1 学习笔记整理(3):逐帧动画的更多相关文章
- Cocos2dx 3.1.1 学习笔记整理(1) 新建项目
最近手痒了,不小心下载了cocos2dx 3.1.1,又搞了个VS2012,于是头脑发热的搞起 3.1.1了. 我是有多么的不专心啊. 已经把自己之前的学习内容从2.2.3迁移到了3.1.1,除了骨骼 ...
- Cocos2dx 3.1.1 学习笔记整理(2):创建场景与载入图片
把之前用2.2.3的代码迁移到3.1.1真是个蛋疼的工作,话说3.1.1做的改动还真是大啊. 可以在HelloWorldScene.cpp中看到,之前的各种CCXXX都被废弃了. 例如,新建一个CCL ...
- Cocos2dx 3.1.1 学习笔记整理(4):事件监听与Action的初步使用
项目忙,趁着刚才有点空,看了下触摸事件在新版本中怎么实现,遇到问题都是去:cocos2d-x-3.1.1\tests\cpp-tests\Classes下面找的,里面都是一些小例子. 首先新的CCNo ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- Deep Learning(深度学习)学习笔记整理系列之(五)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(八)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(七)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(六)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(四)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
随机推荐
- java中怎么解决路径中文的问题
在我遇到精灵线程的问题时,遇到一个中文路径的问题 原来是这样的 URL url=Test8.class.getClassLoader().getResource(""); Stri ...
- 2.10 工具使用 after effects(图形视频处理软件)
................... ..................... 暂无 教程素材网 http://img.yipinsucai.com/
- Setting DPDK+OVS+QEMU on CentOS
Environment Build Step: these packages are needed for building dpdk+ovs: yum install -y make gcc gli ...
- 用for while 成绩的有效输入
#include "stdio.h" void main() { int score,s; printf("请输入你的成绩:"); scanf("%d ...
- Jdk1.7环境变量的配置
在"系统属性——高级——环境变量——系统变量"中新建如下变量: 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0_03 (即jdk ...
- 拖拽加点ui吧
有一段时间没写东西了,真的是静下心来不容易的事情. 把之前的代码再翻看下,想想要加点ui什么的. 2d 塔防ui之前 我看过,但放到3d上做,其实难度是很大的. 不过,这不算什么,关键是 合理的 布 ...
- windows程序设计(二)
MFC架构组成 1.CWinApp的派生类 2.必须在全局区定义一个派生类的对象 3.在CWinApp派生类内必须要有InitInstance虚函数的重写函数 在MFC软件工程以App类中的InitI ...
- hdu_5711_Ingress(TSP+贪心)
题目连接:hdu5711 这题是 HDU 女生赛最后一题,TSP+贪心,确实不好想,看了wkc巨巨的题解,然后再做的 题解传送门:Ingress #include<cstdio> #inc ...
- hdu_5691_Sitting in Line(状压DP)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5691 题意:中文,不解释 题解:设dp[i][j]表示当前状态为i,以第j个数为末尾的最忧解,然后dp ...
- webpy
url处理 对于一个站点来说,URL 的组织是最重要的一个部分,因为这是用户看得到的部分,而且直接影响到站点是如何工作的,在著名的站点如:del.icio.us ,其URLs 甚至是网页界面的一部分. ...