MapView: refactor sprite rendering

This commit is contained in:
Matthias Schiffer 2016-01-08 20:36:58 +01:00
parent 8567ed9397
commit 8acc22138d

View file

@ -121,6 +121,18 @@ export default class MapView {
this.redraw()
}
private drawSprite(img: HTMLImageElement, srcX: number, srcY: number, destX: number, destY: number): void {
this.ctx.drawImage(
img,
tiles(srcX), tiles(srcY),
tileSize, tileSize,
tiles(destX)*this.scale,
tiles(destY)*this.scale,
tileSize*this.scale,
tileSize*this.scale
);
}
private drawTile(x: number, y: number, tile: TileData): void {
if (!tile)
return;
@ -129,15 +141,7 @@ export default class MapView {
if (!img)
return;
this.ctx.drawImage(
img,
tiles(tile.subtile || 0), 0,
tileSize, tileSize,
tiles(x)*this.scale,
tiles(y)*this.scale,
tileSize*this.scale,
tileSize*this.scale
);
this.drawSprite(img, tile.subtile || 0, 0, x, y);
}
private drawEntity(e: EntityPosition, time: number): boolean {
@ -146,14 +150,7 @@ export default class MapView {
return false;
var p = entityPosition(e, time);
this.ctx.drawImage(
sprite,
tiles(e.direction), 0,
tileSize, tileSize,
tiles(p.x)*this.scale, tiles(p.y)*this.scale,
tileSize*this.scale, tileSize*this.scale
);
this.drawSprite(sprite, e.direction, 0, p.x, p.y);
return !!e.transition;
}