-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStructure.ts
58 lines (53 loc) · 1.66 KB
/
Structure.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import Cell = require('./proto/Cell');
import Canvas = require('./Canvas');
import Engine = require('./Engine');
/** @constant instance du canvas */
const canvas = Canvas.getInstance();
/**
* @author Kolly Florian
* @version 1.0 - initial
* @classdesc Classe gérant le dessin de structure de base
*/
class Structure {
/** l'instance de Engine */
private engine: Engine;
/**
* @method constructor
*/
public constructor() {
this.engine = Engine.getInstance();
}
/**
* Dessine une grille
* @method drawGrid
* @param xPosition la position X du pixel supérieur gauche
* @param yPosition la position Y du pixel supérieur gauche
* @param width la largeur totale de la grille
* @param height la hauteur totale de la grille
* @param lines le nombre de ligne de la grille
* @param cols le nombre de colonne de la grille
* @param image l'image pour le background des Cell
* @param scale le scale pour les Cell
* @return le tableau de cellules
*/
public drawGrid(xPosition: number, yPosition: number, width: number, height: number, lines: number, cols: number, image: string, scale: number): Array<Cell> {
const sideX = width / cols;
const sideY = height / lines;
canvas.CTX.beginPath();
let cells = [];
let x = xPosition, y = yPosition;
for(let i = 0; i < cols; i++) {
y = yPosition;
for(let j = 0; j < lines; j++) {
let curCell = new Cell(image, x, y, scale);
this.engine.addObjects(curCell);
cells.push((curCell));
y += sideY;
}
x += sideX;
}
canvas.CTX.stroke();
return cells;
}
}
export = Structure;