1

我正在尝试使用 Andengine 中的 MoveByModifier 进行精灵移动。我希望它在修改器完成后继续重复,但我无法实现。如果有人可以提供帮助,以下是我的代码...

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));
4

2 回答 2

1

如果你想从起始位置重复移动精灵,你可以使用

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

重复MoveByModifier从当前坐标继续移动。

于 2013-05-26T08:55:01.247 回答
0

完成后无需重置修改器。您必须删除 super.reset(); onModifierFinished方法里面。因为当你调用它时,它会从 Sprite 中移除应用的修饰符。

为了将精灵从旧位置重复到新位置,可以这样写

  MoveModifier moveModifier= new MoveModifier(20,Sprite.getX(), Sprite.getY(), Sprite.getX()+150, Sprite.getY()+400);
Sprite.registerEntityModifier(new LoopEntityModifier(moveModifier));
于 2013-05-26T08:53:55.413 回答