Aller au contenu principal

Classes et objets

Bien que la définition d'une interface pour le type Position soit utile pour simplifier le code, la fonction collisionJoueurs pourrait faire partie de Position.

En effet, une position pourrait elle-même vérifier si elle est égale à une autre position.

Nous pouvons ainsi transformer notre interface en classe. Une classe permet de décrire un objet (ici une position), qu'il est possible d'instancier et avec lequel on peut interagir.

class Position {
x: number;
y: number;
z: number;

equals(position: Position): boolean {
return this.x == position.x && this.y == position.y && this.z == position.z;
}
}

let p1 = new Position();
p1.x = 2;
p1.y = 2;
p1.z = 1;

let p2 = new Position();
p2.x = 3;
p2.y = 3;
p2.z = 1;

let estEgal = p1.equals(p2)
console.log(estEgal) // false

Nous avons ici instancié deux positions et utilisé la fonction equals sur l'une d'entre elles pour vérifier l'égalité.

Note

Une classe décrit un objet (ses fonctions, ses attributs, etc.), alors qu'un objet (new) est une instance d'une classe.

Par exemple, un chien est une classe, un Labrador est une instance de la classe chien.