portfolio/assets/js/renderer.js
2025-12-28 19:49:58 -05:00

52 lines
947 B
JavaScript

class Renderer {
constructor(spriteX, spriteY, canvasX, canvasY, rotation=0) {
this.spriteX = spriteX
this.spriteY = spriteY
this.canvasX = canvasX
this.canvasY = canvasY
this.rotation = rotation
if (this.rotation === 0) {
this.render()
} else {
this.rotateRender()
}
}
render() {
ctx.drawImage(
spriteMap,
spriteSize * this.spriteX,
spriteSize * this.spriteY,
spriteSize,
spriteSize,
spriteSize * this.canvasX,
spriteSize * this.canvasY,
spriteSize,
spriteSize
)
}
rotateRender() {
ctx.save()
ctx.translate(
spriteSize * this.canvasX + (spriteSize / 2),
spriteSize * this.canvasY + (spriteSize / 2)
)
ctx.rotate(this.rotation * TO_RADIANS)
ctx.drawImage(
spriteMap,
spriteSize * this.spriteX,
spriteSize * this.spriteY,
spriteSize,
spriteSize,
-(spriteSize/2),
-(spriteSize/2),
spriteSize,
spriteSize)
ctx.restore()
}
}