2013-05-26 24 views
1

我想在Andengine中使用MoveByModifier進行精靈移動。我希望它在修飾符完成後繼續重複,但我無法實現。以下是我的代碼,如果任何人都可以幫助...MoveByModifier不會重置Andengine

MoveByModifier mod1 = new MoveByModifier(20, 150, 400){ 
     @Override 
     protected void onModifierFinished(IEntity pItem) { 
      super.reset(); 
     } 
    }; 

Sprite.registerEntityModifier(mod1); 
mMainScene.attachChild(Sprite); 

我也試過LoopEntityModifier但仍沒有重複。我無法理解爲什麼呢?

Sprite.registerEntityModifier(new LoopEntityModifier(mod1)); 

回答

1

如果你想重複移動從開始位置的精靈,你可以使用

MoveModifier mod1 = new MoveModifier(20,Sprite.getX(), Sprite.getY(), Sprite.getX()+150, Sprite.getY()+400); 
Sprite.registerEntityModifier(new LoopEntityModifier(mod1)); 

重複MoveByModifier繼續從當前運動座標。

+0

你給出的move修飾符的語法是不正確的。它的MoveModifier(持續時間,從X到X,從Y到Y)..無論如何它幫助我..謝謝 –

+0

'公共MoveModifier(最終浮動pDuration,最終浮動pFromX,最終浮動pFromY,最終浮動pToX,最終浮動pToY)'https: //github.com/nicolasgramlich/AndEngine/blob/GLES2-AnchorCenter/src/org/andengine/entity/modifier/MoveModifier.java – Alexey

+0

public MoveModifier(final float pDuration,final float pFromX,final float pToX,final float pFromY,最終浮動pToY)'在舊vesion AndEngine – Alexey

0

無需完成後的修改重置it.You必須刪除super.reset();裏面onModifierFinished方法。因爲當你調用它時,它會從Sprite中刪除應用的修飾符。

對於重複的從老現在的位置到新的精靈,寫這樣

MoveModifier moveModifier= new MoveModifier(20,Sprite.getX(), Sprite.getY(), Sprite.getX()+150, Sprite.getY()+400); 
Sprite.registerEntityModifier(new LoopEntityModifier(moveModifier));