2013-11-16 4 views
1

Это код, который я использовал для анимации в cocos2d android, , но он не повторяет, что с этим делать?Cocos2d анимация изображения не является повторением

public void animWaterSplash() {  

     OpenPuzzleAnim = CCAnimation.animation("", 0.18f); 
     for (int i = 1; i < 3; i++) { 
      CCSpriteFrameCache.sharedSpriteFrameCache(); 
      OpenPuzzleAnim.addFrame(String.format("waterSplash%02d.png", i)); 
     } 
     action1 = CCAnimate.action(OpenPuzzleAnim); 
     waterSplash.runAction(action1); 
    } 
+0

Я понимаю, что это cocos2d-андроид, а не cocos2d-iphone? Я изменил тег. – LearnCocos2D

ответ

0

У меня также была такая же проблема, но я сделал небольшие изменения и решил проблему. во-первых, вы используете CCRepeatForever для повторения и добавляете (_) подчеркивание в имени вашего изображения. В моем случае я использовал тот же процесс, но когда я меняю имя изображения, он работал.

Я изменяю ваш код этим. Просто проверьте это, может это вам поможет.

public void animWaterSplash() {  

     OpenPuzzleAnim = CCAnimation.animation("run", 0.18f); 
     OpenPuzzleAnim.addFrame(String.format("waterSplash_01.png")); 
     OpenPuzzleAnim.addFrame(String.format("waterSplash_02.png")); 
     OpenPuzzleAnim.addFrame(String.format("waterSplash_03.png")); 
     CCAnimate animate = CCAnimate.action(OpenPuzzleAnim); 
     CCRepeatForever repeat = CCRepeatForever.action(animate); 
     waterSplash.runAction(repeat); 
} 

и если вы хотите, чтобы переместить объект, чем добавить еще одно действие, как этот

public void animWaterSplash() {  

     OpenPuzzleAnim = CCAnimation.animation("run", 0.18f); 
     OpenPuzzleAnim.addFrame(String.format("waterSplash_01.png")); 
     OpenPuzzleAnim.addFrame(String.format("waterSplash_02.png")); 
     OpenPuzzleAnim.addFrame(String.format("waterSplash_03.png")); 
     CCAnimate animate = CCAnimate.action(OpenPuzzleAnim); 
     CCRepeatForever repeat = CCRepeatForever.action(animate); 
     CCAction moveAction = CCMoveBy.action(6.0f,CGPoint.ccp(yourpoints); 
     waterSplash.runAction(repeat); 
     waterSplash.runAction(moveAction); 
} 

Может быть его глупым, но работал на me.you можно также попробовать.

0

U нужно положить action1 в CCRepeatForever. А затем запустите это действие вместо action1.