2012-04-26 63 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解決方案將爲您完成。