触摸后连续运动?

时间:2012-09-16 21:02:28

标签: java android

发现了许多类似的问题,但没有任何问题可以解决我自己的问题。它可能是非常简单的血腥,但它已经很晚了,我无法理解它。我有一个我正在研究的安卓游戏,你触摸屏幕,它会向那个方向发射一个精灵。我已经完成了大部分代码工作,但是,在精灵激发并移开后,它会到达触摸点然后只是摆动。我希望它继续沿着这个角度继续前进......

这是我的代码(以及重要的部分):

List<TouchEvent> touchEvents = game.getInput().getTouchEvents();
        int len = touchEvents.size();

        for(int i = 0; i < len; i++) {
            TouchEvent event = touchEvents.get(i);                        
            if(event.type == TouchEvent.TOUCH_UP) {
                touchPoint.set(event.x, event.y);
                guiCam.touchToWorld(touchPoint);                               
            }
        }

        //Log.d("PANDAM", touchPoint.x + "|" + touchPoint.y);
        float speed = 112f;
        double theta = 180.0 / Math.PI * Math.atan2(panda_y - touchPoint.y, panda_x - touchPoint.x);
        Log.d("PANDAM", " > "+theta+" < ");

        movePanda(theta, speed, deltaTime);

和“movePanda”方法:

    private void movePanda(double angle, float speed, float deltaTime)
{   
    panda_x += speed * Math.cos(angle)*deltaTime;
    panda_y += speed * Math.sin(angle)*deltaTime;       
}

我的问题是,如何让熊猫沿着触摸矢量继续进行而不是在它到达原始触摸点时突然出现?

1 个答案:

答案 0 :(得分:0)

您似乎正在重新计算动画的每个步骤的角度,但实际上您需要记住第一次开始移动时的角度。当您通过原始触摸点时,角度会改变为指向另一个方向,因此如果您在每个动画步骤中重新计算它,它将会改变并最终指向另一个方向。