我有一个精灵,触摸必须开始沿着Y坐标移动。 我需要在达到默认Y坐标时停止运动。 我尝试过setposition()但是没有做出平滑的动作(就像动画一样) 我怎么能这么顺利呢?
我尝试了setvelocity(),但我不知道如何在某个坐标处停止移动。
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent,
final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
if(pSceneTouchEvent.isActionDown()){
//TOCCO DELLO SPRITE
PhysicsHandler physicsHandler = new PhysicsHandler(this);
this.registerUpdateHandler(physicsHandler);
physicsHandler.setVelocityY(-5f);
se.getChild(1).detachChild(this);
se.getChild(2).attachChild(this);
}
我也试过这条路,但我不太清楚它是如何运作的。
修改
根据Jong,我使用了MoveYModifier。它有效,但在avd上运动似乎生涩。我很快就会试用一台设备,但这只是一个avd问题? 我这样做了:
if(pSceneTouchEvent.isActionDown()){
//TOCCO DELLO SPRITE
se.getChild(1).detachChild(this);
se.getChild(2).attachChild(this);
MoveYModifier mod = new MoveYModifier(3, getY(), pSceneTouchEvent.getY()- gap);
this.registerEntityModifier(mod);
}
编辑2 在设备上测试并运行良好!非常顺利!