首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cocos2d中的动画。

Cocos2d中的动画。
EN

Stack Overflow用户
提问于 2010-06-06 22:20:28
回答 2查看 1.8K关注 0票数 2

我正试着用cocos2D做一个sprite animate。我相信我已经设置好了动画,但是如何将animating sprite绘制到屏幕上呢?这就是我所拥有的:

代码语言:javascript
运行
复制
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];

先谢谢你,约翰

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-14 02:47:41

也许这只是一个剪切和粘贴错误,但看起来您是在告诉精灵在创建动画之前重复该动画,因此添加到节点的角色精灵永远不会收到发送给它的CCAnimate操作。

票数 1
EN

Stack Overflow用户

发布于 2010-08-10 07:11:10

您没有按照addFrame方法的要求添加spriteFrames。

使用这一行:

字符do:重复;

也许你在找[character runAction:repeating];

character = CCSprite spriteWithSpriteFrame:动画;

在这里,anim不是spriteFrame,它是CCanimation。

基本上,你有一些问题。

您可以尝试使用zwoptex创建.plist文件,如下所示:

代码语言:javascript
运行
复制
CCSpriteFrameCache *cache = [CCSpriteFrameCache sharedSpriteFrameCache]; 

[cache addSpriteFramesWithFile:@"runImages.plist"]; 

CCSprite *startingImage = [CCSprite spriteWithSpriteFrameName:@"run1.png"];

[self addChild:startingImage];

//创建您的精灵框架

代码语言:javascript
运行
复制
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"]];

//播放动画

代码语言:javascript
运行
复制
CCAnimation *animation = [CCAnimation animationWithName:@"char_walking" delay:1/12.0 frames:animFrames];
id anim = [CCAnimate actionWithAnimation:animation restoreOriginalFrame:NO];    
[startingImage runAction:anim];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2984499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档