我正在使用 AndEngine 开发一个 Android 项目。我有一个工作动画 Sprite ,它移动到屏幕上触摸的位置。我的问题是,我似乎无法弄清楚如何在 Sprite 到达目的地后停止动画。这是我的 Sprite 运动和动画的代码。预先感谢您的帮助。
编辑新代码---
@Override
public boolean onSceneTouchEvent (Scene m_Scene, TouchEvent pSceneTouchEvent) {
if (pSceneTouchEvent.getAction() == TouchEvent.ACTION_UP) {
float touchX = pSceneTouchEvent.getX();
float touchY = pSceneTouchEvent.getY();
float[] minerLoc = sprMiner.getSceneCenterCoordinates();
float minerX = minerLoc[0];
float minerY = minerLoc[1];
MoveModifier sprModifier = new MoveModifier(5, minerX, touchX, minerY, touchY)
{
protected void onModifierStarted(IEntity pItem)
{
super.onModifierStarted(sprMiner);
// Start Walking Animation
sprMiner.animate(new long[] {150, 150, 150, 150, 150, 150, 150, 150}, 0, 7, true);
}
protected void onModifierFinished(IEntity pItem)
{
super.onModifierFinished(sprMiner);
//Stop Walking Animation
sprMiner.stopAnimation(0);
}
};
sprMiner.registerEntityModifier(sprModifier);
}
return false;
}
最佳答案
修饰监听器:
有时,您需要在特定时刻执行某些代码,例如在启动或完成修饰符时,为此,您只需在创建新修饰符时重写一些方法即可。为此,请按照以下方法操作:RotationModifier yourModifier = new RotationModifier(3, 0, 360)
{
@Override
protected void onModifierStarted(IEntity pItem)
{
super.onModifierStarted(pItem);
// Your action after starting modifier
}
@Override
protected void onModifierFinished(IEntity pItem)
{
super.onModifierFinished(pItem);
// Your action after finishing modifier
//STOP ANIMATION HERE!!!
}
};
yourEntity.registerEntityModifier(yourModifier);
关于java - AndEngine 在到达目的地时停止动画 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24165591/