1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| function Tileset(url) {
// Chargement de l'image dans l'attribut image
this.image = new Image();
this.image.referenceDuTileset = this;
this.image.onload = function() {
if(!this.complete)
throw new Error("Erreur de chargement du tileset nommé \"" + url + "\".");
// Largeur du tileset en tiles
this.referenceDuTileset.largeur = this.width / 32;
}
this.image.src = "tilesets/" + url;
}
// Méthode de dessin du tile numéro "numero" dans le contexte 2D "context" aux coordonnées xDestination et yDestination
Tileset.prototype.dessinerTile = function(numero, context, xDestination, yDestination) {
var xSourceEnTiles = numero % this.largeur;
console.log(this);
console.log(this.largeur);
if(xSourceEnTiles == 0) xSourceEnTiles = this.largeur;
var ySourceEnTiles = Math.ceil(numero / this.largeur);
var xSource = (xSourceEnTiles - 1) * 32;
var ySource = (ySourceEnTiles - 1) * 32;
context.drawImage(this.image, xSource, ySource, 32, 32, xDestination, yDestination, 32, 32);
} |
Partager