我正在使用AndEngine开发一个Android项目。我有一个工作动画精灵,移动到屏幕上的触摸位置。我的问题是,我似乎无法弄清楚精灵到达目的地后如何停止动画。这是我的精灵运动和动画的代码。提前感谢您的帮助。
编辑新代码---
@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;
}
答案 0 :(得分:1)
修改器侦听器:
有时您需要在特定时刻执行某些代码,例如在启动或修饰修改器时执行此操作,您只需在创建新修改器时覆盖某些方法。为此,请遵循以下方法:
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);