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é.
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.