Files
SNAKE/src/object/Mouvements.java

66 lines
1.6 KiB
Java

package object;
import java.io.Serializable;
/**
* Cet enumerateur prend en charge tout les mouvements possible
* pour le serpent, il a uniquement la possibilité de se déplacer
* grâce a {@link Mouvements} pour la classe Player et Robot.
*/
@SuppressWarnings("unused")
public enum Mouvements implements Serializable {
/**
* HAUT prend comme coordonnée (0, -1) pour se déplacer.
* @param x = 0
* @param y = -1
*/
HAUT(0, -1),
/**
* BAS prend comme coordonnée (0, 1) pour se déplacer.
* @param x = 0
* @param y = 1
*/
BAS(0, 1),
/**
* GAUCHE prend comme coordonnée (1, 0) pour se déplacer.
* @param x = -1
* @param y = 0
*/
GAUCHE(-1, 0),
/**
* @DROITE prend comme coordonnée (-1, 0) pour se déplacer.
* @param x = 1
* @param y = 0
*/
DROITE(1, 0);
private final int deltaX;
private final int deltaY;
Mouvements(int deltaX, int deltaY) {
this.deltaX = deltaX;
this.deltaY = deltaY;
}
/**
* Cette fonction prend les coordonnées mis en paramètre et
* modifie avec les coordonnées de l'enum.
* @param coordinate prend principalement les coordonnées du
* personnage
*/
public void updateCoordinate(int[] coordinate) {
coordinate[0] += this.deltaX;
coordinate[1] += this.deltaY;
}
/**
* Cette fonction retourne les coordonnées des valeurs du mouvement.
* @return la liste qui contient [0] = x et [1] = y
*/
public int[] getCoordinate() {
return new int[] {this.deltaX, this.deltaY};
}
}