精灵可以看作是演员、角色,在游戏中,精灵可以是一张图片,一个控件(比如label也是继承了精灵类)……在场景中,精灵会根据需要进行相关的“表演”,这个“表演”可以是待在某个坐标,也可以是一组动画……游戏中的动画效果是很多的,可以是动态变换位置、大小的菜单按钮,也可以是个游戏人物的行为动画……这里先推荐两篇不错的文章,里面详细介绍了各种动画效果和实现的原理:
http://blog.csdn.net/honghaier/article/details/8197892
http://blog.csdn.net/honghaier/article/details/8214030
如果想做什么效果的话随时可以参考上面两篇文章的说明进行相关调用,而官方原例中的Action Test已经输出了所有效果,这里记录一下关键的、常用的内容:
1.CCSpriteBatchNode
它用于批量绘制精灵,当要绘制的精灵所用的纹理图片都在一张图片中时,使用它能大大提高绘制的效率,因为它可以一次性绘制所有存储在里面的精灵。在CCSpriteBatchNode创建时需要一张纹理图,这也是绘制精灵时要用到的纹理,当然,创建的方式有几种,这里只给出官方原例中PerformanceTest里使用的方式:
CCSpriteBatchNode* BatchNode = CCSpriteBatchNode::create("grossini_dance_atlas.png", 50);
sprite = CCSprite::createWithTexture(batchNode->getTexture(), CCRectMake(0, 0, 52, 139));
batchNode->addChild(sprite, 0, tag+100);
第二个参数是设定CCSpriteBatchNode的容量,也就是容纳精灵的数量,当超过这个容纳上限被超过时,容量将自动按33%来增加。需要注意的是,CCSpriteBatchNode只能用来存储精灵对象,像粒子、标签、层是不能被加进去的。当创建精灵时,可以引用BatchNode创建时绑定的纹理图,