2012-03-28 6 views
0

Hallo Ich mache ein Spiel für iphone und wenn das Sprite bewegt Ich möchte es Bild zwischen 3 Bildern ändern, so sieht es aus wie es läuft. Ich benutze jetzt cocos2d und ich bin ziemlich neu bei cocos2d. Ich weiß, wie man das mit Kakao macht, aber das funktioniert nicht mit cocos2d.cocos2d animation sprite

Also meine Frage ist, wie ändere ich das Sprite-Bild zwischen 3, Bilder und ich möchte es Schleife, während ich meinen Finger auf einer Position auf dem Bildschirm halte?

Vielen Dank im Voraus.

Antwort

0
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"animations/grossini.plist"]; 

CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"grossini_dance_01.png"]; 
sprite.position = ccp(100, 100); 

CCSpriteSheet *spritesheet = [CCSpriteSheet spriteSheetWithFile:@"animations/grossini.png"]; 
[spritesheet addChild:sprite]; 
[self addChild:spritesheet]; 

NSMutableArray *animFrames = [NSMutableArray array]; 
for(int i = 1; i < 15; i++) { 

    CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"grossini_dance_%02d.png",i]]; 
    [animFrames addObject:frame]; 
} 

CCAnimation *animation = [CCAnimation animationWithName:@"dance" frames:animFrames]; 
// 14 frames * 0.2sec = 2,8 seconds 
[sprite runAction:[CCRepeatForever actionWithAction: [CCAnimate actionWithDuration:2.8f animation:animation restoreOriginalFrame:NO] ]]; 
+0

Oder folge diesem URL http://www.raywenderlich.com/1271/how-to-use-animations-and-sprite-sheets-in-cocos2d – Anand

1

Dies ist eine ziemlich belastete Frage, um neu bei cocos2d zu sein.

Ich würde zuerst an der unendlichen Animation arbeiten. Lassen Sie das funktionieren und pausieren, starten und spiegeln Sie die Animation.

Sie können die Animation in derselben Methode einrichten, mit der Sie das Sprite hinzufügen.

NSMutableArray *animFrames = [NSMutableArray array]; 
    for(int i = 1; i <= 3; i++) { 
     CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Sprite-%d.png",i]]; 
     [animFrames addObject:frame]; 
    } 
    CCAnimation *animation = [CCAnimation animationWithName:@"run" delay:0.1f frames:animFrames]; 
    [mySprite runAction:[CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:animation restoreOriginalFrame:NO]]]; 

Wenn Sie mit Sprite Blätter nicht vertraut sind, es gibt viele freie Ressourcen für ein Sprite Blatt und plist zu schaffen (TexturePacker hat eine schöne Oberfläche)

Wenn Sie Schwierigkeiten haben, dies funktioniert, Ray Wenderlich hat gute Tutorials. Wenn Sie dies hier weit kommen sind einige Hinweise für das Anhalten, Fortsetzen und blätterte die Animation

Für Pausieren oder

[mySprite pauseSchedulerAndActions]; 
[mySprite resumeSchedulerAndActions]; 

die Animation Flip wieder aufnehmen, wenn die Berührungs Richtungen horizontaler Richtung schaltet

mySprite.flipX = YES; 
mySprite.flipX = NO; 
+0

hey, coole Lösung :) es funktioniert, außer das Ausführen und Pausieren Aktion in Init Ich habe die Aktion meines Sprites nicht unterbrochen - weiter ly in touches Methoden pausieren und fortsetzen scheint zu funktionieren ... irgendeine Idee? – raistlin