2011-04-05 102 views
0

嘿傢伙,我是新來的cocos2d和iPhone開發,即時試圖創建一個像「PapiJump」, 我目前有問題,是動畫字符CCSprite在我的遊戲中, 我已經創建我的角色的3個圖像,右側,左側和中間的字符指向(http://i53.tinypic.com/ngzoyh.png)在cocos2d上動畫CCSprite?

所以當字符改變方向(左或右)時,它不會「跳」直接向另一個方向,但將動畫..

在我的代碼im使用TouchesEnded方法,在這種方法im設置名爲「touchState」, ,所以如果用戶觸摸屏幕的右側它將將「touchState」設置爲1,否則將其設置爲2(表示左側)。

然後在「初始化」方法,我創建了一個運行另一個方法每0.5秒被命名爲「時間表」:「updateGame」, 的「updateGame」方法更新玩家的位置,它的工作原理類似: 球員.position = ccp(player.position.x,player.position.y - playerGravity.y);

我讀過Ray's tutorial動畫CCSprites,但我不知道如何實現我需要的結果.. 在此先感謝和抱歉我的英語不好!

回答

0

你能澄清你的問題嗎?如果你想設置一個不同的前景幀,可以使用setDisplayFrame

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

,或者如果你有一個動畫:

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

但我覺得這個問題有點模糊。

+0

感謝試圖幫助,我想澄清我的問題,我希望它現在更好! :D – Dan 2011-04-05 18:45:42

0

,如果我得到你的問題正確,我可以提出兩種方法來解決你的問題:
首先你可以將您的物體旋轉,直到它倒過來,並繼續使用FlipX(或FlipY)標誌標記以前的動畫片, true或者你可以添加一個動畫,它只能動畫旋轉字符,並且當它結束時改變FLipX(或FlipY)狀態。

+0

對不起,我的意思,謝謝,雖然,我會嘗試澄清我的問題 – Dan 2011-04-05 18:29:16

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

(或高速緩存他們和開關)