在Cocos2d android中设置精灵动画

在Cocos2d android中设置精灵动画,android,sprite,cocos2d-android,Android,Sprite,Cocos2d Android,我想在cocos2d中使用android制作移动的sprite动画,请帮助 这是我的密码: public void setMoveAnimation(CCSprite target) { //CCSprite target = CCSprite.sprite("Target.png"); CCAnimation OpenAnim = CCAnimation.animation("", 0.1f); for (int i = 1; i <= 2; i++) {

我想在cocos2d中使用android制作移动的
sprite
动画,请帮助 这是我的密码:

public void setMoveAnimation(CCSprite target) {
    //CCSprite target = CCSprite.sprite("Target.png");
    CCAnimation OpenAnim = CCAnimation.animation("", 0.1f);

    for (int i = 1; i <= 2; i++) {
        OpenAnim.addFrame(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName("target.0" + i + ".png"));

        CCAction MoveAction = CCAnimate.action(1, OpenAnim, false);
        target.runAction(MoveAction);
    }
}
public void setMoveAnimation(CCSprite目标){
//CCSprite target=CCSprite.sprite(“target.png”);
CCAnimation OpenAnim=CCAnimation.animation(“,0.1f);
对于(int i=1;i您可以这样做:

public void openScrPpr(float duration, CCSprite player) {
    CCAnimation scrPprAnim = CCAnimation.animation("", 2 / 20f);
    CGSize size = CCDirector.sharedDirector().displaySize();
    CCMoveTo moveTo = CCMoveTo.action(1,
            CGPoint.ccp(size.getWidth(), (size.getHeight() - 40)));

    for (int i = 1; i <= 7; i++) {
        scrPprAnim.addFrame(CCSpriteFrameCache.sharedSpriteFrameCache()
                .spriteFrameByName(i + ".png"));

        if (i == 7) {
            for (int j = 7; j >= 1; j--) {
                scrPprAnim.addFrame(CCSpriteFrameCache
                        .sharedSpriteFrameCache().spriteFrameByName(j + ".png"));
            }
        }
    }

    CCIntervalAction scrPprAction = CCAnimate.action(duration, scrPprAnim, false);
    CCRepeatForever forever = CCRepeatForever.action(scrPprAction);
    CCRepeatForever forever2 = CCRepeatForever.action(moveTo);
    player.runAction(forever);
}
public void openScrPpr(浮动持续时间,CCSprite播放器){
cAnimation-scrPprAnim=cAnimation.animation(“”,2/20f);
CGSize size=CCDirector.sharedDirector().displaySize();
CCMoveTo moveTo=CCMoveTo.action(1,
CGPoint.ccp(size.getWidth(),(size.getHeight()-40));
对于(int i=1;i=1;j--){
scrPprAnim.addFrame(CCSpriteFrameCache
.sharedSpriteFrameCache().spriteFrameByName(j+“.png”);
}
}
}
cIntervalAction scrPprAction=CCAnimate.action(持续时间,scrPprAnim,false);
CCRepeatForever=CCRepeatForever.action(SCRPON);
CCRepeatForever2=CCRepeatForever.action(移动到);
player.runAction(永远);
}
你可以这样做。这对我来说很有用。devil1.png,devil2.png像这样一直到devil4.png

CCAnimation animation=CCAnimation.animation(“舞蹈”,0.2f);
对于(int i=1;i<5;i++){
addFrame(CCFormatter.format(devil%d.png,i));
}
cIntervalAction action=cAnimate.action(动画);
target.runAction(CCRepeat.action(action,9));

我有一个对象通过使用以下代码的动画穿过屏幕:

 CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFrames("ninjastar.plist");
 CCSpriteSheet projectileSheet = CCSpriteSheet.spriteSheet("ninjastar.png");
 addChild(projectileSheet);
 ArrayList<CCSpriteFrame> projectileSprites = new ArrayList<CCSpriteFrame>();

 for (int i = 1; i <= 4; i++) 
 {
     projectileSprites.add(CCSpriteFrameCache.spriteFrameByName("ninjastar" + i + ".png"));
 }



  CCAnimation projectileAnimation = CCAnimation.animation("throw", 0.1f, projectileSprites);
  CCSprite projectile = CCSprite.sprite(projectileSprites.get(0));
  CCAction projectileAction = CCRepeatForever.action(CCAnimate.action(projectileAnimation, false));
  projectile.setPosition(CGPoint.ccp(winSize.width + (projectile.getContentSize().width / 2.0f), actualY));
  actionMove = CCMoveTo.action(actualDuration, CGPoint.ccp(-      projectile.getContentSize().width / 2.0f + 320, actualY));
  projectileSheet.addChild(projectile);
  projectile.setTag(1);
  projectiles.add(projectile);

  CCCallFuncN actionMoveDone = CCCallFuncN.action(this, "spriteMoveFinished");
  CCSequence actions = CCSequence.actions(actionMove, actionMoveDone);
  projectile.runAction(actions);
  projectile.runAction(projectileAction);

瓦伊沙利我正在使用这个:

 ArrayList<CCSpriteFrame> jumpForwardAnimation=jumpForwardDown();
                 CCAnimation crocodileEatFrogJumpsUpAnimation = CCAnimation.animation("throw", 0.14f, jumpForwardAnimation);

                 COUNTdOWNaCTION=CCAnimate.action(crocodileEatFrogJumpsUpAnimation, false);

    CCBezierConfig bezier = new CCBezierConfig();   

                 bezier.controlPoint_1=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height*0.6f);
                 bezier.controlPoint_2=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height);
                 bezier.endPosition=location;

                 CCBezierTo  action = CCBezierTo.action(0.5f, bezier);
                 CCFiniteTimeAction action2=CCSpawn.actions(COUNTdOWNaCTION,action );

                 CCFiniteTimeAction actionMoveDone = CCCallFunc.action(this, "frogMoveDone");
                 CCAction COUNTdOWNaCTION1=CCSequence.actions(action2, actionMoveDone);
                 frog.runAction(COUNTdOWNaCTION1);


public void frogMoveDone(){

        frog.setPosition(point);
        }
ArrayList jumpForwardAnimation=jumpForwardDown();
cAnimation鳄鱼eatfrogjumpsupanimation=cAnimation.animation(“投掷”,0.14f,跳跃前进动画);
COUNTdOWNaCTION=CCAnimate.action(鳄鱼形EatFrogjumpsupanimation,false);
CCBezierConfig bezier=新的CCBezierConfig();
bezier.controlPoint_1=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height*0.6f);
bezier.controlPoint_2=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height);
bezier.endPosition=位置;
CCBezierTo动作=CCBezierTo.action(0.5f,贝塞尔);
CCFiniteTimeAction action2=CCSpawn.actions(倒计时动作,动作);
CCFiniteTimeAction actionMoveDone=CCCallFunc.action(这是“frogMoveDone”);
CCAction COUNTdOWNaCTION1=CCSequence.actions(action2,actionMoveDone);
蛙式动作(倒计时动作1);
公开无效frogMoveDone(){
青蛙。设定位置(点);
}
但是我的青蛙首先用beizer路径设置动画到下一个位置,然后在改变位置后返回到上一个位置


你能告诉我这里做错了什么吗?

你能探索一下出现的问题吗。你确定,我想在cocos2d中为移动的精灵设置动画
  public void spriteMoveFinished(Object sender) 
  {
    CCSprite sprite = (CCSprite)sender;
    projectiles.remove(sprite);
    sprite.stopAllActions();
    sprite.removeFromParentAndCleanup(true);
  }
 ArrayList<CCSpriteFrame> jumpForwardAnimation=jumpForwardDown();
                 CCAnimation crocodileEatFrogJumpsUpAnimation = CCAnimation.animation("throw", 0.14f, jumpForwardAnimation);

                 COUNTdOWNaCTION=CCAnimate.action(crocodileEatFrogJumpsUpAnimation, false);

    CCBezierConfig bezier = new CCBezierConfig();   

                 bezier.controlPoint_1=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height*0.6f);
                 bezier.controlPoint_2=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height);
                 bezier.endPosition=location;

                 CCBezierTo  action = CCBezierTo.action(0.5f, bezier);
                 CCFiniteTimeAction action2=CCSpawn.actions(COUNTdOWNaCTION,action );

                 CCFiniteTimeAction actionMoveDone = CCCallFunc.action(this, "frogMoveDone");
                 CCAction COUNTdOWNaCTION1=CCSequence.actions(action2, actionMoveDone);
                 frog.runAction(COUNTdOWNaCTION1);


public void frogMoveDone(){

        frog.setPosition(point);
        }