MoveByModifier 不会重置 Andengine

Posted

技术标签:

【中文标题】MoveByModifier 不会重置 Andengine【英文标题】:MoveByModifier does not reset 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));

【问题讨论】:

【参考方案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));

【讨论】:

以上是关于MoveByModifier 不会重置 Andengine的主要内容,如果未能解决你的问题,请参考以下文章

Vue 3 组件重置不会重置 reactive() 对象数据

为啥重置表单不会清除绑定的模型属性

Django 在密码重置时不会重定向到正确的路径

getATR() 不会在 javax.smartcardio 中重置智能卡

Laravel 5 重置密码通知不会发送

单击 X 时表格不会重置