Код должен работать (по крайней мере, часть обработки холста). Я посмотрел на ваш скрипт и может быть проблема с загрузкой изображений. У вас есть
var tile = new Image();
tile.src = tiles[i]['bg'];
tilesCtx.drawImage(tile, tiles[i]['col']*32, tiles[i]['row']*32);
но это не будет работать, так как изображение еще не загружено. Вместо этого вы должны использовать
tile.onload = function(){
tilesCtx.drawImage(tile, tiles[i]['col']*32, tiles[i]['row']*32);
}
или что-то в этом роде (т.е. у вас не будет ссылки на переменную i
, поэтому ее необходимо изменить).
Обратите внимание, что в этом уроке используется setInterval(drawAll, 20);
, что заставляет его работать через некоторое время (поскольку через некоторое время все изображения будут загружены).
Конечно, вы можете потерять порядок изображений (хотя это не кажется важным), поэтому предварительно загрузив все изображения в начале, а затем нарисовав их все сразу, будет хорошей идеей. Попробуйте и дайте нам сейчас, если это работает!