Android AndEngine动画之间的持续时间

Android AndEngine动画之间的持续时间,android,animation,sprite,andengine,duration,Android,Animation,Sprite,Andengine,Duration,我正在开发一个完全基于动画的简单游戏。对于此应用程序,我使用的是AndEngine SDK。我是一个全新的开发Android游戏的人。我在谷歌上搜索了很多,但是所有的文章都很高级,在这个应用程序中对我没有任何用处 我的问题是: 1.如何在每个动画中执行具有特定延迟的循环动画 这是我的密码: final Sprite playButton = new Sprite(centerX, CAMERA_HEIGHT - 500, mPlayButton, getVertexBufferObjectMan

我正在开发一个完全基于动画的简单游戏。对于此应用程序,我使用的是AndEngine SDK。我是一个全新的开发Android游戏的人。我在谷歌上搜索了很多,但是所有的文章都很高级,在这个应用程序中对我没有任何用处

我的问题是:

1.如何在每个动画中执行具有特定延迟的循环动画

这是我的密码:

final Sprite playButton = new Sprite(centerX, CAMERA_HEIGHT - 500, mPlayButton, getVertexBufferObjectManager());
final ScaleModifier scale = new ScaleModifier(0.5f, 1, 1.1f, 1f, 1.1f);
LoopEntityModifier scalePlayButton = new LoopEntityModifier(scale);
playButton.registerEntityModifier(scalePlayButton);
mScene.attachChild(playButton);
final Sprite playButton = new Sprite(centerX, CAMERA_HEIGHT - 500, mPlayButton, getVertexBufferObjectManager());
final ScaleModifier scale = new ScaleModifier(0.5f, 1, 1.1f, 1f, 1.1f);

scale.addModifierListener(new IModifier.IModifierListener<IEntity>() {
      @Override
      public void onModifierStarted(IModifier<IEntity> pModifier, IEntity         pItem) {

      }
      @Override
      public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
                 playButton.registerEntityModifier(scale);
      }
});

playButton.registerEntityModifier(scale);
mScene.attachChild(playButton);
现在,我希望在循环中执行的每个缩放动画中都有特定的延迟

2.如果我不使用LoopEntityModifier,那么如何在特定延迟后执行缩放动画。为了实现这一点,以下是我的代码:

final Sprite playButton = new Sprite(centerX, CAMERA_HEIGHT - 500, mPlayButton, getVertexBufferObjectManager());
final ScaleModifier scale = new ScaleModifier(0.5f, 1, 1.1f, 1f, 1.1f);
LoopEntityModifier scalePlayButton = new LoopEntityModifier(scale);
playButton.registerEntityModifier(scalePlayButton);
mScene.attachChild(playButton);
final Sprite playButton = new Sprite(centerX, CAMERA_HEIGHT - 500, mPlayButton, getVertexBufferObjectManager());
final ScaleModifier scale = new ScaleModifier(0.5f, 1, 1.1f, 1f, 1.1f);

scale.addModifierListener(new IModifier.IModifierListener<IEntity>() {
      @Override
      public void onModifierStarted(IModifier<IEntity> pModifier, IEntity         pItem) {

      }
      @Override
      public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
                 playButton.registerEntityModifier(scale);
      }
});

playButton.registerEntityModifier(scale);
mScene.attachChild(playButton);
final Sprite playButton=新的Sprite(centerX,摄像头高度-500,mPlayButton,getVertexBufferObjectManager());
最终缩放修改器缩放=新缩放修改器(0.5f、1、1.1f、1f、1.1f);
scale.addModifierListener(新的IModifier.IModifierListener(){
@凌驾
已启动修改器上的公共无效(IModifier pModifier,IEntity pItem){
}
@凌驾
修改器上的公共无效已完成(IModifier pModifier,IEntity pItem){
playButton.registerEntityModifier(缩放);
}
});
playButton.registerEntityModifier(缩放);
mScene.attachChild(播放按钮);
但,一旦我将孩子连接到场景中,它就不会再次启动动画

请告诉我哪里出了问题


谢谢

您可以通过使用AndEngine中的
DelayModifier
类和
SequenceEntityModifier
LoopEntityModifier
组合来实现它。下面是代码片段:

final Sprite playButton = new Sprite(centerX, CAMERA_HEIGHT - 500, mPlayButton, getVertexBufferObjectManager());
SequenceEntityModifier scaleSequence = new SequenceEntityModifier(
         new ScaleModifier(0.2f, 1f, 1.07f),
         new ScaleModifier(0.2f, 1.07f, 1f),
         new DelayModifier(2f)
 );
LoopEntityModifier scaleLoopModifier = new LoopEntityModifier(scaleSequence);
playButton.registerEntityModifier(scaleLoopModifier);
mScene.attachChild(playButton);
希望它能帮助你