2013-05-28 2 views
0

이것은 장면에 삽입 된 적에게 애니메이션을 만드는 내 구현입니다.Cocos2D에서 뛰어난 캐릭터 애니메이션을 만드는 방법은 무엇입니까?

CCSpriteFrameCache *cache = [CCSpriteFrameCache sharedSpriteFrameCache];  
CCAnimation *animation = [CCAnimation animation]; 
[animation addSpriteFrame:[cache spriteFrameByName:@"enemy_1.png"]]; 
[animation addSpriteFrame:[cache spriteFrameByName:@"enemy_2.png"]]; 
animation.delayPerUnit = 0.1; 
[_enemy runAction: 
[CCRepeatForever actionWithAction: 
    [CCAnimate actionWithAnimation:animation]]]; 

이것은 애니메이션을 구현하는 방법의 한 예일뿐입니다. 예를 들어, 여러 부분으로 구성된 "보스"가있는 경우 본문의 다른 부분에있는 애니메이션을 사용하여 매우 기이하게 만들고 싶습니다.

이미지를 연속적으로 교체하는 것보다 부드럽게 애니메이션을 만드는 방법이 있습니까?

전산 적으로 이것은 최선의 방법이며,보다 효율적인 기법이 있습니까? 여러 이미지를로드 도움

+1

"부드럽게" – Kreiri

+3

2 프레임 만 정의 하시겠습니까? 더 많은 프레임을 사용하여 애니메이션을 부드럽게 만들고 delayPerUnit도 조정하십시오. P – Guru

+0

물론 이미지를 추가하면 훨씬 더 유동적 인 애니메이션을 얻을 수 있습니다. 내 질문은 애니메이션을 만들 수있는 기술에 관한 것입니다. 예를 들어, 여러 부분으로 구성된 "보스"가있는 경우 본문의 다른 부분에있는 애니메이션을 사용하여 매우 기이하게 만들고 싶습니다. – andreapavan

답변

1

에 대한

덕분에, 다른 후 하나적인 Cocos2D에서 '애니메이션'의 유일한 방법입니다. 수학적으로 정의 할 수있는 다양한 효과의 경우 프레임 워크 내에서 제공되는 함수 (예 : 회전, 크기 조정, 이동 또는 물리 기반 애니메이션 (낙하 또는 튀는 동작))를 사용할 수 있습니다.

아티스트가 깨끗한 스프라이트 시트에 유체 프레임 애니메이션을 사용하면 애니메이션이 얼마나 매끄럽게 보이는지 놀라게 될 것입니다.

1
//if you are using spritesheet then use this...for loading or sprites in your game... 

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"walkcycle.plist"] ; 
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"walkcycle.png"]; 
[heroWorldLayer addChild:spriteSheet]; 

NSMutableArray *enemyFrames = [NSMutableArray array]; 
for(int i = 1; i <= 11; ++i) { 
    CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Run_Anim00%02d.png", i]]; 
    [enemyFrames addObject:frame]; 
} 
id enemyAnim = [CCAnimation animationWithFrames:enemyFrames delay:1.0/22.0]; 
id enemyAnimate = [CCAnimate actionWithAnimation:enemyAnim restoreOriginalFrame:NO]; 

id _runAction = [CCRepeatForever actionWithAction:enemyAnimate]; 
[_enemy runAction:_runAction]; 
관련 문제