可以从CCSpriteFrameCache(Cocos2d)获取CCTexture吗?

时间:2010-07-12 20:41:08

标签: objective-c

所以这就是我要做的事情:

从我读入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];

1 个答案:

答案 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。

无论如何,这是我的看法。任何更好的方式,知道。