我似乎無法弄清楚爲什麼我的代碼不起作用。我基本上試圖做的是使用數組生成基於10x10瓦片的地圖。我不能在drawImage()的對象中使用對象嗎?
這個想法是創建一個名爲Box的對象,該對象具有'x'和'y'屬性以及框內的圖像對象。然後,2d數組中的每個位置都填充一個盒子對象。我想然後畫出所有這些數組。每個tile(或數組元素)是一個64x64的盒子。
const ROW = 10;
const COLS = 11;
const SIZE = 64;
var canvas = document.getElementById("canvas");
var surface = canvas.getContext("2d");
//creating tile
function box() {
this.xaxis = 56;
this.yaxis = 0;
this.img = new Image();
this.img.src = "box_image.png";
}
//creating map
var map =[];
function setMap() {
for (var i = 0; i < ROW; i++) {
for (var o = 0; o < COLS; o++) {
map[i][o] = new box();
}
}
}
//rendering map
function render() {
for (var i = 0; i < map.length; i++) {
for (var x = 0; x < map.length; x++) {
var tile = map[i][x];
tile.xaxis *= i;
tile.yaxis *= x;
surface.drawImage(tile.img, tile.xaxis, tile.yaxis, 64, 64);
}
}
}
setTimeout(render, 10);
你應該從盒子分裝後的圖像可以隨時調用。你只使用一個圖像,但加載110次,這不是非常資源友好。 – Blindman67