2011-04-05 3 views
0

안녕하세요, 저는 cocos2d 및 iPhone 개발을 처음 접했습니다. 현재 "PapiJump"와 같은 게임을 만들기 위해 노력하고 있습니다. 현재 문제가있는 것은 내 게임에서 문자 CCSprite를 움직이는 것입니다. 내가 만들었습니다. 내 캐릭터, 오른쪽, 왼쪽 및 가운데를 가리키는 캐릭터의 이미지 3 개 (http://i53.tinypic.com/ngzoyh.png)cocos2d에서 CCSprite 애니메이션하기?

캐릭터가 방향을 변경하면 (왼쪽 또는 오른쪽) 방향이 바뀌지 않습니다.

내 코드에서 TouchesEnded 메서드를 사용하여이 메서드에서 im은 "touchState"라는 변수를 설정하고 그래서 사용자가 화면의 오른쪽을 터치하면 "touchState"를 1로 설정하고, 그렇지 않으면 2로 설정합니다 (왼쪽을 의미).

은 다음 "초기화"방법에 내가 다른 방법을 이름 매 0.5 초마다 실행되는 "예약"창조 "updateGame"은 "updateGame"방법은 플레이어의 위치를 ​​업데이트 을, 그 같은 작품 : 플레이어 .position = ccp (player.position.x, player.position.y - playerGravity.y);

나는 CCSprites 애니메이션에 Ray's tutorial을 읽었지 만, 내가 필요한 결과를 얻는 방법을 모르겠다. 미리 감사드립니다. 나쁜 영어로 죄송합니다!

답변

0

질문을 명확히 할 수 있습니까?

CCSpriteFrame *spriteFrame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:frameName]; 
[sprite setDisplayFrame:frame]; 

을하거나 애니메이션이있는 경우 : 다른 스프라이트 프레임을 설정하려면, 당신은 setDisplayFrame을 사용할 수 있습니다

[sprite runAction:[CCAnimate actionWithAnimation:runAnimation restoreOriginalFrame:NO]]; 

을하지만 문제 같은 느낌이 조금 모호합니다.

+0

덕분에 수, 난 내 질문을 명확히하려고, 난 이제 더 나은 희망! : D – Dan

0

문제가 해결되면 두 가지 방법으로 문제를 해결할 수 있습니다. 먼저 객체를 뒤집을 때까지 회전하고 이전 애니메이션을 FlipX (또는 FlipY) 플래그 표시로 계속 사용하십시오. true 또는 캐릭터 만 애니메이트하는 애니매이션을 추가 할 수 있으며, Finnish가 끝나면 FLipX (또는 FlipY) 상태를 변경할 수 있습니다.

+0

미안하지만 그게 내가 무슨 뜻인지, 고마워, ~ 내 질문을 명확히하려고 노력할 것입니다 – Dan

3
NSMutableArray *walkAnimFrames = [NSMutableArray array]; 
for(int i = 1; i <= 4; ++i) 
{ 
    [walkAnimFrames addObject: [[CCSpriteFrameCache sharedSpriteFrameCache]  spriteFrameByName: [NSString stringWithFormat:@"spr_fillin_0%d.png", i]]]; 
} 
CCAnimation *walkAnim = [CCAnimation animationWithFrames:walkAnimFrames delay:0.0333f]; 

_sprite = [CCSprite spriteWithSpriteFrameName:@"spr_fillin_01.png"]; 
[_sprite runAction:[CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:NO]]]; 

[<CCLAYER OR BATCH NODE> addChild:_sprite]; 

편집 : 당신은 그냥 주위의 이미지를 뒤집기 대해 얘기처럼 보인다. 당신은 단지

_sprite = [CCSprite spriteWithSpriteFrameName:@"<New Sprite File>"]; 

와 스프라이트를 다시 반입 (또는 그들과 스위치를 캐시) 도우려고에 대한