1.
auto sp = Sprite::create(
"image.png"
);
//精灵图片是image.png
//第一种载入精灵的方法
2.
auto sp1 = Sprite::create(
"boy.png"
);
3.
this
->addChild(sp1,
1
);
4.
5.
//第二种载入精灵的方法
6.
auto sp_cache = Director::getInstance()->addImage(7.
auto sp1 = Sprite::createWithTexture(sp_cache);
8.
);
有人可能回认为第二种方法效率比较高,其实不然,俩种都一样@H_404_19@!它们都是经过了加载图片到TextureCache缓存中,然后从缓存中提取该纹理并绘制出来这两个步骤。但是第二种方法使用起来会更灵活,就像我上面说到的,如果一个界面用到的资源非常多,可以先将这些图片资源读取到TextureCache中,等真正进入到这个界面再使用这些图片速度就会非常快。常用到的地方就是游戏的资源加载界面,可以参考这篇博客:http://blog.csdn.net/start530/article/details/19420317
2、SpriteFrameCache@H_404_19@
auto frameCache = SpriteFrameCache::getInstance();
frameCache->addSpriteFramesWithFile(
"boy.plist"
,
//boy.png里集合了boy1.png,boy2.png这些小图
->addChild(frame_sp,宋体">2
);
3、AnimationCache@H_404_19@
这个应该是最简单的吧,是动画的缓存。对于精灵动画,每次创建时都需要加载精灵帧,然后按顺序添加到数组,再用Animation读取数组创建动画。这是一个非常烦琐的计算过程@H_404_19@。而对于使用频率高的动画,例如角色的走动、跳舞等,可以将其加入到AnimationCache中,每次使用都从这个缓存中调用,这样可以有效的降低创建动画的巨大消耗。AnimationCache::getInstance()->addAnimation(dance_animate,宋体">"dance"
//第二个参数是动画存入缓存时对应的key
AnimationCache::getInstance()->addAnimation(sleep_animate,宋体">"sleep"
//读取缓存中的动画
auto dance_animate = AnimationCache::getInstance()->animationByName(
//根据key从缓存中提取动画
auto sleep_animate = AnimationCache::getInstance()->animationByName(
);