【问题标题】:MoveByModifier does not reset AndengineMoveByModifier 不会重置 Andengine
【发布时间】:2013-05-26 08:32:39
【问题描述】:

我正在尝试使用 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));

【问题讨论】:

    标签: android andengine modifier


    【解决方案1】:

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

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

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

    【讨论】:

    • 你给出的移动修饰符的语法不正确。它的 MoveModifier(duration, fromX, toX, fromY, toY).. 无论如何它帮助了我.. 谢谢
    • public MoveModifier(final float pDuration, final float pFromX, final float pFromY, final float pToX, final float pToY) github.com/nicolasgramlich/AndEngine/blob/GLES2-AnchorCenter/…
    • public MoveModifier(final float pDuration, final float pFromX, final float pToX, final float pFromY, final float pToY) in old vesion AndEngine
    • 哦,好的...我拥有的版本...gles2只有类型 public MoveModifier(final float pDuration, final float pFromX, final float pToX, final float pFromY, final float pToY)
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多