private void translate(Point current, Point destination, Point speed) { if (current.getX() > destination.getX()) { current.setX(current.getX() - speed.getX()); if (current.getX() < destination.getX()) { current.setX(destination.getX()); } } else { current.setX(current.getX() + speed.getX()); if (current.getX() > destination.getX()) { current.setX(destination.getX()); } } if (current.getY() > destination.getY()) { current.setX(current.getY() - speed.getY()); if (current.getY() < destination.getY()) { current.setX(destination.getY()); } } else { current.setX(current.getY() + speed.getY()); if (current.getY() > destination.getY()) { current.setY(destination.getY()); } } }