int HexagonBoard::getHexDistance(const sf::Vector2i& Tile1, const sf::Vector2i& Tile2) const {
	int retVal;
	//Relativkoordinaten zum Punkt 0, 0
	sf::Vector2i relToZeroInHexa(Tile1.x-Tile2.x, Tile1.y-Tile2.y);
	
	//Differnz bilden
	sf::Vector2i diffInHexa(relToZeroInHexa.x, relToZeroInHexa.y);

	//Umrechnung auf Mittelpunktskoordinaten/Dreieckskoordinaten
	//Dabei gerade und ungerade Reihen beachten
	if(Tile1.y % 2) {
		diffInHexa.x=-2*diffInHexa.x;
	} else {
		diffInHexa.x=2*diffInHexa.x;
	}

	//Zusätzliche Verschiebung berücksichtigen, weil y-Achse im Zick-Zack läuft
	if(abs(relToZeroInHexa.y) % 2) {
		diffInHexa.x -=1;
	}

	//Relativkoordinaten zum Punkt 0, 0
	sf::Vector2i relToZeroInTriangles(diffInHexa.x, relToZeroInHexa.y);

	int m=( (relToZeroInTriangles.x <= 0 ? -1 : 1)*relToZeroInTriangles.x) - abs(diffInHexa.y);
	return (m < 0 ? abs(diffInHexa.y) : m/2.f + abs(diffInHexa.y) );
}