Kad*_*dir 1 android wait andengine
我正在用andengine编写一个游戏.我用Runnable创建了一个循环.我想创建一个等待(秒)函数.
例如,有10张小图片作为精灵.他们通过MoveModifier以1秒的速率从(100,100)移动到(100,400).但我想:程序将在5到6张图片之间等待x秒.-我怎样才能做到这一点?
延迟修改器的另一种方法是使用TimerHander.计时器处理程序将执行您在指定的延迟时间后定义的函数.与使用Android Handler相反,TimerHandler的一个很好的功能是,当游戏引擎暂停并恢复时,TimerHandler将暂停并恢复.
以下是andengine示例中包含的Snake游戏中使用的TimerHandler:
/* Make the Snake move every 0.5 seconds. */
this.mScene.registerUpdateHandler(new TimerHandler(0.5f, true, new ITimerCallback() {
@Override
public void onTimePassed(final TimerHandler pTimerHandler) {
if(SnakeGameActivity.this.mGameRunning) {
try {
SnakeGameActivity.this.mSnake.move();
} catch (final SnakeSuicideException e) {
SnakeGameActivity.this.onGameOver();
}
SnakeGameActivity.this.handleNewSnakePosition();
}
}
}));
Run Code Online (Sandbox Code Playgroud)
==更新==尽管这是接受的答案,但我相信Nicolas Gramlich的答案更好.当然是尼古拉斯·格拉姆利奇(Nicolas Gramlich),他并没有真正记录他的答案,但希望你能在百科全书"Andengine Examples"中查阅.所以这里是你如何使用DelayModifier:延迟修饰符是上述内容的理想选择,因为你已经在使用移动修改器,因此将修饰符链接在一起很简单.
以下是andengine示例中的一个示例(*作者:Nicolas Gramlich) https://code.google.com/p/andengineexamples/source/browse/src/org/anddev/andengine/examples/EntityModifierExample.java?r=2b26f37114e50616bfcbb8e292e20988efd1acd6
要检查的部分是:
new SequenceEntityModifier(
new RotationModifier(1, 0, 90),
new AlphaModifier(2, 1, 0),
new AlphaModifier(1, 0, 1),
new ScaleModifier(2, 1, 0.5f),
new DelayModifier(0.5f),
new ParallelEntityModifier(
new ScaleModifier(3, 0.5f, 5),
new RotationByModifier(3, 90)
),
new ParallelEntityModifier(
new ScaleModifier(3, 5, 1),
new RotationModifier(3, 180, 0)
)
)
Run Code Online (Sandbox Code Playgroud)
您可以看到,您可以在任何两个带有延迟修改器的修改器之间设置延迟.但是,延迟修饰符仅在延迟是修饰符的一部分时才起作用,而不是您编写的函数.在这种情况下,TimerHandler解决方案将为您完成.
| 归档时间: |
|
| 查看次数: |
2957 次 |
| 最近记录: |