remove class Vect, inheritance

This commit is contained in:
2019-10-24 12:28:28 +02:00
parent 300793d98e
commit 498002ac68
2 changed files with 42 additions and 123 deletions

View File

@ -1,71 +1 @@
const MINO_SIZE = 20;
const LINES = 20;
const COLLUMNS = 10;
class Coord {
constructor(x, y) {
this.x = x; this.y = y
}
add(other) {
return new Coord(this.x+other.y, this.y+other.y)
}
rotate(spin) {
return new Coord(spin*this.y, -spin*this.x)
}
}
class Mino {
constructor(context, color) {
this.context = context;
this.coord = new Coord(4, 0);
this.color = color;
}
draw() {
this.context.fillStyle = this.color;
this.context.fillRect(this.coord.x*MINO_SIZE, this.coord.y*MINO_SIZE, MINO_SIZE, MINO_SIZE);
}
}
class Matrix {
constructor(context) {
this.context = context;
}
draw() {
// clear
this.context.clearRect(0, 0, COLLUMNS*Mino.size, LINES*MINO_SIZE);
// grid
this.context.strokeStyle = "rgba(128, 128, 128, 128)";
this.context.beginPath();
for (var x = 0; x <= COLLUMNS*MINO_SIZE; x += MINO_SIZE) {
this.context.moveTo(x, 0); this.context.lineTo(x, matrixCanvas.height);
}
for (var y = 0; y <= LINES*MINO_SIZE; y += MINO_SIZE) {
this.context.moveTo(0, y); this.context.lineTo(matrixCanvas.width, y);
}
this.context.stroke();
}
}
function draw() {
matrix.draw()
mino.draw()
}
window.onload = function() {
matrixCanvas = document.getElementById("matrix");
matrixContext = matrixCanvas.getContext("2d");
mino = new Mino(matrixContext, "orange")
matrix = new Matrix(matrixContext)
window.requestAnimationFrame(draw)
}
console.log("OK")