你是否必须使用带有CCSpriteFrameCache的精灵表?

时间:2013-05-22 23:37:06

标签: iphone ios cocos2d-iphone

查看教程以及CCSpriteFrameCCSpriteFrameCache文档,看起来我需要一个类似于使用TexturePacker生成的plist。

有没有办法将单个图像添加到缓存中?

或者使用图片创建CCSpriteFrame的方法?看起来版本1.0.0中有支持,但它不是2.0.0

谢谢!

3 个答案:

答案 0 :(得分:2)

简而言之:是的,你可以做到。但你不想这样做,因为它不切实际,浪费时间。精灵帧的整个要点是在纹理图集中定义纹理区域。只是使用spriteWithFile。但这并不能很好地扩展性能。

迟早你必须开始使用纹理图册,并使用一个好工具(TexturePacker是我的最爱)。

答案 1 :(得分:1)

如果您需要有关精灵表的帮助,可以查看此tutorial 他向您展示了如何使用texture packer并完全为熊设置动画。纹理打包器会自动为您生成.plist。这很酷。但是,您不需要使用精灵表。我认为,您可以将图像添加到数组中,并将数组中的图像序列作为动画播放。该教程是here 此外,所有CCSpriteFrameCache都会缓存精灵帧。您可以使用.plist文件加载带有框架的CCSpriteFrameCache,也可以使用CCSpriteFrame和精灵框架名称来加载它。请查看此cocos2d论坛:here

祝你好运= - )

答案 2 :(得分:0)

你不需要纹理打包器来创建一个.plist ...如果你有胃的话,你会做得很好。但是,您可以:

CGRect myRect = CGRectMake(0, 0, 80, 40); 
CCTexture2D *myTexture = [[CCTextureCache sharedTextureCache] addImage:@"myTexture.pvr.gz"];
CCSpriteFrame *fr=[CCSpriteFrame frameWithTexture:myTexture rect:myRect];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFrame:fr name:@"myFunkyFrameName"];

编。没有测试但是用2.0编译好,应该可以工作。