Вы фиксируете ширину и высоту каждой плитки как 80, 80
. Если вы хотите, чтобы он был исправлен, вам придется изменить ширину и высоту холста на 80*11, 80*11
, то есть 880, 880
.
Принимая во внимание, что если вы не хотите фиксировать размер холста и ограничить егобыть квадратомВам нужно нарисовать каждую плитку шириной width/11, height/11
. Таким образом, ваш код станет
function setup() {
createCanvas(1000, 800);
background(255);
const n = 11;
// compute height and width
var h = height / n;
var w = width / n;
for (var i = 0; i < n; i++) {
var posX = map(i, 0, n, 0, width);
var posY = map(i, 0, n, 0, height);
var posX2 = map(i, 0, n, 0, width);
var posY2 = map(i, 0, n, height, 0);
var tileRowUp = new Tile(posX, 0, w, h);
tileRowUp.show();
var tileColLeft = new Tile(0, posY, w, h);
tileColLeft.show();
var tileRowdown = new Tile(posX2, height - h, w, h);
tileRowdown.show();
var tileColRight = new Tile(width - w, posY2, w, h);
tileColRight.show();
}
}
Теперь, если вы хотите использовать квадратные плитки, вам нужно иметь width = height
.
. Вы можете запустить приведенный выше код здесь в p5. js web editor.
Примечание. Когда вы обрабатываете игровую логику, если вы делаете это с помощью класса Tile
, вам нужно быть осторожным, так как у вас есть несколько объектов Tile, нарисованных поверх каждогодругое.