好的,所以说我们在(200,200)处有一个带球的图表,我们将手指从(0,0)滑到(100,100)我该如何将球移动到(300,300)?这应该很简单,但它确实伤到了我的脑袋!这是我到目前为止的代码(使用andengine)
float currentX=0;
float lastX=0;
float currentY=0;
float lastY=0;
@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
// If a user moves their finger on the device
if(pSceneTouchEvent.getAction() == TouchEvent.ACTION_MOVE){
// Set our marble's position to the touched area on the screen
if(pSceneTouchEvent.getX()!=lastX){
currentX = lastX- pSceneTouchEvent.getX();
}
if(pSceneTouchEvent.getY()!=lastY){
currentY = lastY- pSceneTouchEvent.getY();
}
//float x1 = pSceneTouchEvent.getX()-mMarbleSprite.getX();
mMarbleSprite.setPosition(currentX,currentY );
lastX = pSceneTouchEvent.getX();
lastY = pSceneTouchEvent.getY();
return true;
}
return false;
}
答案 0 :(得分:0)
我想你可以看一下Android中的Property Animation。这是开发人员参考。它易于实现和理解。
http://developer.android.com/guide/topics/graphics/prop-animation.html
答案 1 :(得分:0)
currentX = lastX- pSceneTouchEvent.getX();
此分配每次都为您提供接近于零的值(您正在计算每次触摸相对于最后一次触摸的增量)。尝试直接设置触摸位置。
currentx = pSceneTouchEvent.getX();