2010-06-06 4 views
2

cocos2Dsprite animate을 만들려고합니다. 나는 애니메이션을 설정했다고 믿지만 화면에 animating sprite을 어떻게 그리는가? 여기에 내가 무엇을 가지고 : 사전에Cocos2d의 애니메이션.

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]; 

감사합니다, 존

답변

1
어쩌면

그냥 잘라 내기 및 붙여 넣기 오류가 있었다, 그러나 당신은 전에 애니메이션을 반복 스프라이트를 말하는 것 같습니다 노드를 추가하면 캐릭터 스프라이트는 CCAnimate 액션을받지 못한다.

+0

그래, 그랬지, 바보 같아. – tallen11

0

addFrame 메서드에 필요한대로 spriteFrames를 추가하지 않습니다. 이 라인

:

[캐릭터 수행 반복];

어쩌면 당신은 [character runAction:repeating];

문자 = [CCSprite spriteWithSpriteFrame : ANIM]을 찾고,

여기에서 anim은 spriteFrame이 아니며 CCanimation입니다.

기본적으로 몇 가지 문제가 있습니다.

당신이 당신의 .plist 파일을 만들 zwoptex를 사용하여이 뭔가를 시도 할 수 :

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]; 
관련 문제