所以这就是我要做的事情:
从我读入CCSpriteFrameCache的atlas创建一个sprite(工作正常。)
为精灵添加一个动画 - 我也可以让它工作得很好但是......
通过加载大量CCSpriteFrame来创建动画,而CCSpriteFrame又从共享的CCTextureCache读取CCTextures作为其资产。它有效,但我不相信这是最好的方式。好像我应该用CCSpriteFrameCache中加载的atlassprite元素加载那些CCSpriteFrame。
问题是:是否有一种方法或方法可以在CCSpriteFrameCache的框架中使用CCSprites加载那些CCSpriteFrame?
打开我认为这是错误的想法。感谢您的任何提示。
代码在这里:
CCAnimation *thingAnimation = [CCAnimation animationWithName:@"wiggle" delay:0.1f];
//this works but I want to get the CCTexture from CCSpriteFrameCache....
aTexture = [[CCTextureCache sharedTextureCache] addImage:@"moon.png"];
//because CCSpriteFrame will only accept a CCTexture
frame1 = [CCSpriteFrame frameWithTexture:aTexture rect:CGRectMake(0, 0, aTexture.pixelsWide, aTexture.pixelsHigh) offset:ccp(0,-40)];
[thingAnimation addFrame:frame1];
答案 0 :(得分:0)
我想如果你已经知道这一点,你认为这是一个非常愚蠢的问题。我在这里找到了答案: http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:animation
基本上,要从地图集和plist执行动画,您需要能够使用CCSpriteSheet,CCSprite,CCSpriteFrame,CCSpriteFrameCache和CCAnimation。
首先创建CCSpriteSheet。然后从plist创建CCSpriteFrameCache。然后你可以随意创建CCSprites和CCSpriteFrames; CCSpriteFrames提供给CCAnimation。
无论如何,这是我的看法。任何更好的方式,知道。