Bonjour, C'est pas grave si j'ai pas de réponses, je veux juste apprendre à optimiser les codes que j'écris, bon en plus ici j'utilise mal la fonction with selon vscode, il me fait erreur.

'with' statements are not allowed in strict mode.ts(1101)

Il s'agit ici d'afficher l'image de chaque arme du vaisseau soit à gauche soit à droite soit au centre du vaisseau, selon le nombre d'armes.
Par exemple :
- S'il en a qu'une elle sera au centre.
- S'il en a trois, la première sera à gauche, la deuxième au centre et la troisième à droite.
- Le vaisseau ne pourra avoir que trois armes maxi.

ligne 7 du code
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
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
	// Dessine le vaisseau joueur avec ses armes.
	Draw(ctx){
 
		// Affiche le vaisseau.
		ctx.drawImage(this.Image, this.X, this.Y, this.W, this.H);
 
		with(this){ // <=== ICI
			if((TArmes.length>0) && (TArmes.length<3)){
 
				if(TArmes.length == 1){
					TArmes[0].X = Math.floor(this.W/2); // Arme positionnée au centre du vaisseau.
					// Affiche l'arme.
					ctx.drawImage(TArmes[0].Image, TArmes[0].X, TArmes[0].Y, TArmes[0].W, TArmes[0].H);
 
				}else
				if(TArmes.length == 2){
					TArmes[0].X = this.X; // Arme positionnée à gauche du vaisseau.
					// Affiche l'arme.
					ctx.drawImage(TArmes[0].Image, TArmes[0].X, TArmes[0].Y, TArmes[0].W, TArmes[0].H);
 
					TArmes[1].X = this.W-Arme.W; // Arme positionnée à droite du vaisseau.
					// Affiche l'arme.
					ctx.drawImage(TArmes[1].Image, TArmes[1].X, TArmes[1].Y, TArmes[1].W, TArmes[1].H);
 
				}else
				if(TArmes.length == 3){
					TArmes[0].X = this.X; // Arme positionnée à gauche du vaisseau.
					// Affiche l'arme.
					ctx.drawImage(TArmes[0].Image, TArmes[0].X, TArmes[0].Y, TArmes[0].W, TArmes[0].H);
 
					TArmes[1].X = Math.floor(this.W/2); // Arme positionnée au centre du vaisseau.
					// Affiche l'arme.
					ctx.drawImage(TArmes[1].Image, TArmes[1].X, TArmes[1].Y, TArmes[1].W, TArmes[1].H);
 
					TArmes[2].X = this.W-TArmes[2].W; // Arme positionnée à droite du vaisseau.
					// Affiche l'arme.
					ctx.drawImage(TArmes[2].Image, TArmes[2].X, TArmes[2].Y, TArmes[2].W, TArmes[2].H);
 
				}
 
 
			}
 
		}
	}

C'est bon j'ai trouvé, il fallait faire l'update et le draw séparément et à chacun sa classe. j'avais tout mélangé.