private void move() {
		xa = 0;
		ya = 0;
		int px = (int) level.getPlayerAt(0).getX(); // player's coordinate is in pixel precision. But our algorithm is in tile precision
		int py = (int) level.getPlayerAt(0).getY();
		Vector2i start = new Vector2i((int) getX() >> 4, (int) getY() >> 4); // divide by 16 to get to tile precision
		Vector2i destination = new Vector2i(px >> 4, py >> 4); // divide by 16 to get to tile precision
		if (time % 1 == 0) path = level.findPath(start, destination); // once per second we'll update this
		if (path != null) {
			if (path.size() > 0) {
				Vector2i vec = path.get(path.size() - 1).tile; // start from the last node
			if (x < vec.getX() << 4) xa++ ; // if our current location is to the right then increase x++
			if (x > vec.getX() << 4) xa-- ; 
			if (y < vec.getY() << 4) ya++ ; 
			if (y > vec.getY() << 4) ya-- ; 
			}
		}
		if (xa != 0 || ya != 0) {
			move(xa, ya); 
			walking = true;
		} else {
			walking = false;
		}
	}