Ich scheine keine Antwort auf diese Frage zu finden. Ich habe eine Karte mit Hex-Kacheln. Ich möchte das Scrollen implementieren.
Code derzeit:
drawTilemap = function() {
actualX = Math.floor(viewportX / hexWidth);
actualY = Math.floor(viewportY / hexHeight);
offsetX = -(viewportX - (actualX * hexWidth));
offsetY = -(viewportY - (actualY * hexHeight));
for(i = 0; i < (10); i++)
{
for(j = 0; j < 10; j++)
{
if(i % 2 == 0) {
x = (hexOffsetX * i) + offsetX;
y = j * sourceHeight;
} else {
x = (hexOffsetX * i) + offsetX;
y = hexOffsetY + (j * sourceHeight);
}
var tileselected = mapone[actualX + i][j];
drawTile(x, y, tileselected);
}
}
}
Der Code, den ich bisher geschrieben habe, behandelt nur die X-Bewegung. Es funktioniert noch nicht so, wie es sein sollte. Wenn Sie sich mein Beispiel auf jsfiddle.net unten ansehen, werden Sie feststellen, dass beim Bewegen nach rechts und beim Erreichen der nächsten Hex-Kachel ein Problem mit der X-Position und den Berechnungen auftritt, die stattgefunden haben.
Es scheint, dass ein einfaches Stück Mathematik fehlt. Leider konnte ich noch kein Beispiel finden, das das Scrollen enthält.
Stellen Sie sicher, dass keine horizontale Bildlaufleiste vorhanden ist, und versuchen Sie dann, sich mit dem Pfeil -> nach rechts auf der Tastatur nach rechts zu bewegen. Sie werden das Problem sehen, wenn Sie das Ende der ersten Kachel erreichen.
Entschuldigung für den schrecklichen Code, ich lerne!
Prost