Анимированные спрайты в Cocos2d android

Я хочу анимировать движущийся sprite в cocos2d с помощью Android, пожалуйста, вот мой код:

 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); } } 

Вы можете сделать это. Это работает для меня. Devil1.png, devil2.png как это upto devil4.png

 CCAnimation animation = CCAnimation.animation("dance", 0.2f); for (int i = 1; i < 5; i++) { animation.addFrame(CCFormatter.format(devil%d.png, i)); } CCIntervalAction action = CCAnimate.action(animation); target.runAction(CCRepeat.action(action, 9)); 

Вы можете сделать это:

 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); } 

У меня есть объект, проходящий через экран с анимацией, используя следующий код:

  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); 

Я использую «spriteMoveFinished» для удаления спрайта, как только это делается, по экрану:

  public void spriteMoveFinished(Object sender) { CCSprite sprite = (CCSprite)sender; projectiles.remove(sprite); sprite.stopAllActions(); sprite.removeFromParentAndCleanup(true); } 

Vaishali Я использую это:

  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); } 

Но моя лягушка сначала оживает до следующего места с бисером, чем возвращается в предыдущее положение, после чего она меняет свое положение.

Не могли бы вы рассказать, что я делаю неправильно здесь?

Intereting Posts
Ошибка входа в систему LoginButton.java – проблема с началом работы с facebook sdk на Android Можно ли расширить AbsListView для создания новых реализаций ListView? Могу ли я использовать layout_weight для размещения RelativeLayout? Есть ли способ повторного использования экземпляра задания? Определение активности Android в диалоге с легкой темой Импорт проекта android в Intellij IDEA / использование общих ресурсов Как проверить, включена ли батарея для Android Lollipop Доступ / обновление данных на сервере из приложения Android с помощью веб-API, предоставляемого веб-разработчиком? Как открыть вложенный ребенок PreferenceScreen в Android Кнопка переключения пароля в TextInputEditText исчезает после щелчка в Support Library 25.1.0 Bind ButterKnife to Dialog не работает Просто установленные Windows 10 и Eclipse больше не запускаются Проблема со временем буферизации MediaPlayer при потоковой передаче аудио Опубликовать в Google Play через командную строку Как отделить метаданные и дорожку от потока крики, не делая отдельного запроса на метаданные и потоковое