AndEngine 动画之间的时长
AndEngine duration between animation
我正在开发一款完全基于动画的简单游戏。对于这个应用程序,我使用的是 AndEngine SDK。我是 Android 开发游戏的新手。我用谷歌搜索了很多,但所有文章都太高级了,对我来说在这个应用程序中没有用。
我的问题:
1.How 我可以在每个动画中执行具有特定延迟的循环动画吗?
这是我的代码:
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);
现在,我想要循环执行的每个比例动画中的特定延迟。
2.If我没有使用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);
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);
但是,一旦我将 attachChild 添加到场景中,它就不会再次启动动画了。
请让我知道哪里出错了。
谢谢!
您可以通过使用 DelayModifier
class 以及来自 AndEngine 的 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);
希望对您有所帮助!
我正在开发一款完全基于动画的简单游戏。对于这个应用程序,我使用的是 AndEngine SDK。我是 Android 开发游戏的新手。我用谷歌搜索了很多,但所有文章都太高级了,对我来说在这个应用程序中没有用。
我的问题:
1.How 我可以在每个动画中执行具有特定延迟的循环动画吗?
这是我的代码:
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);
现在,我想要循环执行的每个比例动画中的特定延迟。
2.If我没有使用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);
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);
但是,一旦我将 attachChild 添加到场景中,它就不会再次启动动画了。
请让我知道哪里出错了。
谢谢!
您可以通过使用 DelayModifier
class 以及来自 AndEngine 的 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);
希望对您有所帮助!