我正试着用cocos2D做一个sprite animate。我相信我已经设置好了动画,但是如何将animating sprite绘制到屏幕上呢?这就是我所拥有的:
id anim = [[[CCAnimation alloc] initWithName:@"char_walking" delay:1/12.0] autorelease];
[anim addFrame:@"run2.png"];
[anim addFrame:@"run1.png"];
[anim addFrame:@"run3.png"];
[anim addFrame:@"run4.png"];
[anim addFrame:@"run3.png"];
[anim addFrame:@"run1.png"];
id myAction = [CCAnimate actionWithAnimation:anim];
id repeating = [CCRepeatForever actionWithAction:myAction];
[character do:repeating];
character = [CCSprite spriteWithSpriteFrame:anim];
character.position = ccp(160, 240);
[self addChild:character];先谢谢你,约翰
发布于 2010-07-14 02:47:41
也许这只是一个剪切和粘贴错误,但看起来您是在告诉精灵在创建动画之前重复该动画,因此添加到节点的角色精灵永远不会收到发送给它的CCAnimate操作。
发布于 2010-08-10 07:11:10
您没有按照addFrame方法的要求添加spriteFrames。
使用这一行:
字符do:重复;
也许你在找[character runAction:repeating];
character = CCSprite spriteWithSpriteFrame:动画;
在这里,anim不是spriteFrame,它是CCanimation。
基本上,你有一些问题。
您可以尝试使用zwoptex创建.plist文件,如下所示:
CCSpriteFrameCache *cache = [CCSpriteFrameCache sharedSpriteFrameCache];
[cache addSpriteFramesWithFile:@"runImages.plist"];
CCSprite *startingImage = [CCSprite spriteWithSpriteFrameName:@"run1.png"];
[self addChild:startingImage];//创建您的精灵框架
NSArray *animFrames = [[NSArray alloc] initWithCapacity:6];
[animFrames addFrame:[cache spriteFrameByName:@"run2.png"]];
[animFrames addFrame:[cache spriteFrameByName:@"run1.png"]];
[animFrames addFrame:[cache spriteFrameByName:@"run3.png"]];
[animFrames addFrame:[cache spriteFrameByName:@"run4.png"]];
[animFrames addFrame:[cache spriteFrameByName:@"run3.png"]];
[animFrames addFrame:[cache spriteFrameByName:@"run1.png"]];//播放动画
CCAnimation *animation = [CCAnimation animationWithName:@"char_walking" delay:1/12.0 frames:animFrames];
id anim = [CCAnimate actionWithAnimation:animation restoreOriginalFrame:NO];
[startingImage runAction:anim];https://stackoverflow.com/questions/2984499
复制相似问题