2012-04-26 49 views
1

我正在通过andengine编写游戏。我使用Runnable创建了一个循环。并且我想创建一个等待(秒)函数。例如
例如有10张小图像为精灵,它们由MoveModifier以1秒的速率从(100,100)移动到(100,400)。但是我想要:程序将在5到6张图片之间等待x秒。 -我怎样才能做到这一点?andengine的等待函数?

+0

发布你试过的东西...... – dymmeh 2012-04-26 21:10:36

+0

例如有10张小图片作为sprites.they正在从MoveModifier以1秒的速率从(100,100)移动到(100,400)。但我想:程序将等待x 5至6张照片之间的秒数。? – Kadir 2012-04-26 21:28:59

回答

3

DelayModifier。

(十六个字符)

+0

是的,这就是我所说的 - 然后它被转换为一个评论,因为它被认为是一个微不足道的答案,大声笑 – jmroyalty 2012-04-30 22:32:39

7

另一种方法到延迟改性剂是使用TimerHander。定时器处理程序将在指定的延迟时间后执行您定义的功能。与使用android处理程序相比,TimerHandler的一个很好的特性是,当游戏引擎暂停并恢复时,TimerHandler将暂停并恢复。

这里是蛇游戏中使用的TimerHandler列入andengine例子:

​​

== ==更新 尽管这是公认的答案,我相信下面由Nicolas格拉姆利克答案更好。当然是Nicolas Gramlich,他并没有真正记录他的答案,但希望你能在百科全书“Andengine Examples”中看到它。因此,您将如何使用DelayModifier: Delay修饰符是上述内容的理想选择,因为您已使用移动修改器,因此链接修饰符很简单。

下面是andengine实例的实例(*作者:萨科格拉姆利克) 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) 
    ) 
) 

你可以看到,你可以把任何两个修饰之间的延迟延迟修饰符。 但是,延迟修饰符仅适用于延迟是修饰符的一部分,而不是您编写的函数。在这种情况下,TimerHandler解决方案将为您完成。