【发布时间】:2011-11-20 10:12:01
【问题描述】:
我有一个在触摸时必须开始沿 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 在设备上测试并且运行良好!很流畅!
【问题讨论】:
标签: android coordinates sprite andengine