Я пишу простую 2D-игру с боковым скроллером, используя JavaScript + Canvas. Я пытаюсь сделать это, изучая OO JavaScript. Я столкнулся с проблемой, когда мое изображение не будет отображаться на холсте, несмотря на то, что оно загружено правильно. Вот код:
//===================================
// class - Canvas
//===================================
var classCanvas = function(id){
canvas = document.getElementById(id);
context = canvas.getContext("2d");
}
//===================================
// abstract class - Image Drawer
//===================================
var classImageDrawer = function(that){
this.draw = function(){
context.drawImage(that.img,
that.spriteCoordsX,
that.spriteCoordsY,
that.width,
that.height,
that.posX,
that.posY,
that.width,
that.height);
}
}
//===================================
// class - Level
//===================================
var classLevel = function(name, src){
this.name = name;
this.img = new Image();
this.img.src = src;
this.img.onload = function(){ };
this.spriteCoordsX = 0;
this.spriteCoordsY = 0;
this.posY = 0;
this.posX = 0;
this.height = 400;
this.width = 600;
this.drawer = new classImageDrawer(this);
}
//==================================
// Begin
//==================================
var game = new classCanvas("playground");
game.LevelOne = new classLevel("LevelOne", "images/foreground-land.png");
game.LevelOne.drawer.draw();
Я проверил код и знаю, что изображение загружается правильно. Во время выполнения ошибок не возникает, изображение "foreground-land.png" просто НЕ появляется на холсте!