区分"拖动"和"触摸,然后立即触摸"在libgdx中

时间:2014-03-18 09:50:09

标签: java android libgdx

我是LibGdx的新手,我在解决这两个问题时遇到了libgdx的问题。 我在miniclip.com上制作了像峡谷防御这样的游戏。 当我向下触摸然后立即触摸时,新的枪将被添加到列表中。 但是当我拖动时,我只想移动相机。 我的问题是在Android手机上运行HTC感觉时,我无法检测到这两个动作,它总是检测到它是一个拖动动作,即使我刚刚触及然后触及。 在PC上,我已经完成了它,只需点击一下或拖动,一切都已完成,但在Android上,它太难了,请帮助我:-)提前感谢: - )

public boolean touchDown(int screenX, int screenY, int pointer, int button) {
    // TODO Auto-generated method stub
    tempx = screenX;
    tempy = screenY;
    isDrag = false;
    // System.out.println(isDrag);
    return true;
}

@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
    // TODO Auto-generated method stub
    vector.x = screenX;
    vector.y = screenY;
    vector.z = 0;
    camera.unproject(vector);

    if ((button == Input.Buttons.LEFT) && (isDrag == false)) {
        Weapon wp = new Weapon(vector.x, vector.y);
        weapon.add(wp);
    }
    isDrag = false;
    // System.out.println(isDrag);
    return true;
}

@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
    // TODO Auto-generated method stub
    isDrag = true;
    if ((tempy - screenY < 0) && (isOn == true) && (num >= 0)) {
        camera.translate(new Vector3(0, 5, 0));
        num = num - 5;
    }
    if ((tempy - screenY > 0) && (isOn == true)
            && (temp.getHeight() >= num)) {
        camera.translate(new Vector3(0, -5, 0));
        num = num + 5;
    }
    tempy = screenY;
    // System.out.println(isDrag);

    return true;
}

1 个答案:

答案 0 :(得分:1)

如果距离isDrag = true;tempx一定距离,则只设置tempy