2015-10-12 41 views
0

在我的libGDX應用程序中,我有一個需要以編程方式創建動作的actor。Libgdx以編程方式創建序列動作

在我剛剛添加moveBy動作與遞增延遲以獲得所需的效果,但這是非常低效。像下面的東西;

actor.addAction(sequence(delay(i * DELAY), moveBy(50, 50)); 

如果可能的話,我想以編程方式創建一個單一的順序動作,並根據需要添加moveBy行動吧。然後,我可以調用一個單獨的動作,而不必持續添加非常無用的動作。

我檢查了文檔,找不到任何特定於我的特殊需求的東西。

我在想(僞代碼)的問題;

addPath(Vector2 path) { 

    paths.add(path); 
} 

invokePathAction() { 

    Action sequence = sequence(); 
    for all paths 
     sequence.add(moveBy(path.x, path.y, TIME)); 

    addAction(sequence); 
} 

是這樣的可能與libGDX?

回答

0

當然 - 還有的addAction在類方法

MoveToAction action1 = new MoveToAction(); 
    action1.setPosition(0, 0); 
    action1.setDuration(2); 

    MoveToAction action2 = new MoveToAction(); 
    action2.setPosition(-500, 0); 
    action2.setDuration(2); 

    ... 

    SequenceAction sequence = new SequenceAction(); 

    sequence.addAction(action1); 
    sequence.addAction(action2); 

    ... 

    actor.addAction(sequence); 
如果要清除所有操作,並具有

「空」序列再次你可以叫

sequence.reset(); 
+0

不要知道我錯過了這個!尷尬至少可以說! – SolarGrade

+0

所有這些都是繼承的方法:) –

+0

葉,當我第一次嘗試時我正在做'Action action = sequence();'因此我沒有看到'addAction',因爲我沒有正確地轉換類型!再次感謝 :) – SolarGrade