这是我用来在X轴上移动精灵的方法
public void moveX(float constanttime,float fromX,int toX,final Sprite s){
MoveXModifier mod2=new MoveXModifier(constanttime, fromX, toX);
s.registerEntityModifier(mod2);
}
当我想开始移动精灵时,我正在调用这个方法。
moveX(5, car1.getX(), -100, car1);
(car1是我要移动的精灵)
我想在用户触摸精灵(car1)时停止移动此精灵。
有人可以帮我吗?
答案 0 :(得分:0)
实际上,您可以暂停实体修饰符(以及有关特定实体的所有更新)。以下代码允许您根据通过触摸事件操作的布尔值(未注册到代码段中的场景)暂停实体的更新。以下代码片段将导致实体上的修饰符暂停,直到调用isActionUp()为止。您可以通过覆盖实体的onManagedUpdate()方法并传递值0来有效地暂停实体更新(修饰符),该值告诉实体0秒已经过去并且不更新实体修饰符。
boolean isTouched = false;
final Rectangle rectangle = new Rectangle(0, 0, 0, 0, mResourceManager.getEngine().getVertexBufferObjectManager()){
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float pTouchAreaLocalX, float pTouchAreaLocalY) {
if(pSceneTouchEvent.isActionDown()){
isTouched = true;
}
if(pSceneTouchEvent.isActionUp()){
isTouched = false;
}
return super
.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
}
@Override
protected void onManagedUpdate(float pSecondsElapsed) {
if(isTouched){
super.onManagedUpdate(0);
} else {
super.onManagedUpdate(pSecondsElapsed);
}
}
};