|
|
|
@ -104,6 +104,7 @@ class SnekGame { |
|
|
|
|
|
|
|
|
|
draw() { |
|
|
|
|
const assets=require('assets'); |
|
|
|
|
const config=this.config; |
|
|
|
|
|
|
|
|
|
// clear the canvas, because it's easier than having to deal with everything
|
|
|
|
|
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); |
|
|
|
@ -123,7 +124,31 @@ class SnekGame { |
|
|
|
|
this.ctx.fillRect(offsetX+cellSize*this.dimensions[0], 0, offsetX, this.canvas.height); |
|
|
|
|
this.ctx.fillRect(0, offsetY+cellSize*this.dimensions[1], this.canvas.width, offsetY); |
|
|
|
|
|
|
|
|
|
// draw our walls
|
|
|
|
|
// draw a grid/checkerboard if requested
|
|
|
|
|
if(config.appearance.grid=='grid') { |
|
|
|
|
this.ctx.strokeStyle='rgba(0, 0, 0, 50%)'; |
|
|
|
|
this.ctx.lineCap='square'; |
|
|
|
|
this.ctx.lineWidth=1; |
|
|
|
|
this.ctx.beginPath(); |
|
|
|
|
for(let x=1; x<this.dimensions[0]; x++) { |
|
|
|
|
this.ctx.moveTo(offsetX+x*cellSize, offsetY); |
|
|
|
|
this.ctx.lineTo(offsetX+x*cellSize, this.canvas.height-offsetY); |
|
|
|
|
} |
|
|
|
|
for(let y=1; y<this.dimensions[1]; y++) { |
|
|
|
|
this.ctx.moveTo(offsetX, offsetY+y*cellSize); |
|
|
|
|
this.ctx.lineTo(this.canvas.width-offsetX, offsetY+y*cellSize); |
|
|
|
|
} |
|
|
|
|
this.ctx.stroke(); |
|
|
|
|
} else if(config.appearance.grid=='checkerboard') { |
|
|
|
|
this.ctx.fillStyle='rgba(0, 0, 0, 10%)'; |
|
|
|
|
for(let x=0; x<this.dimensions[0]; x++) { |
|
|
|
|
for(let y=(x+1)%2; y<this.dimensions[1]; y+=2) { |
|
|
|
|
this.ctx.fillRect(offsetX+x*cellSize, offsetY+y*cellSize, cellSize, cellSize); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// draw our tiles
|
|
|
|
|
const wall=assets.get('wall'); |
|
|
|
|
const hole=assets.get('hole'); |
|
|
|
|
const fire=assets.get('fire'); |
|
|
|
|