mirror of
https://forge.univ-lyon1.fr/tplifap4/gyromite_ya.git
synced 2024-02-27 13:31:49 +01:00
Ajout methodes dans jeu : regarder derriere soit + retirer item
This commit is contained in:
parent
6515ac97c6
commit
8c5f7c987c
@ -105,41 +105,53 @@ public class Jeu {
|
|||||||
Point positionEntite = map.get(e);
|
Point positionEntite = map.get(e);
|
||||||
return fondALaPosition(positionEntite);
|
return fondALaPosition(positionEntite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ElementPhysique regarderDevantSoit(ElementFond e) {
|
||||||
|
Point positionEntite = map.get(e);
|
||||||
|
return objetALaPosition(positionEntite);
|
||||||
|
}
|
||||||
|
|
||||||
/** Si le déplacement de l'entité est autorisé (pas de mur ou autre entité), il est réalisé
|
/** Si le déplacement de l'entité est autorisé (pas de mur ou autre entité), il est réalisé
|
||||||
* Sinon, rien n'est fait.
|
* Sinon, rien n'est fait.
|
||||||
*/
|
*/
|
||||||
public boolean deplacerEntite(Entite e, Direction d) {
|
public boolean deplacerEntite(ElementDynamique e, Direction d) {
|
||||||
boolean retour = false;
|
boolean retour = false;
|
||||||
|
|
||||||
Point pCourant = map.get(e);
|
Point pCourant = map.get(e);
|
||||||
|
Point pCible = pCourant;
|
||||||
|
|
||||||
|
|
||||||
|
if(d != null)
|
||||||
|
pCible = calculerPointCible(pCourant, d);
|
||||||
|
|
||||||
Point pCible = calculerPointCible(pCourant, d);
|
if (contenuDansGrille(pCible) && objetALaPosition(pCible) == null && e instanceof Entite) { // a adapter (collisions murs, etc.)
|
||||||
|
|
||||||
if (contenuDansGrille(pCible) && objetALaPosition(pCible) == null) { // a adapter (collisions murs, etc.)
|
|
||||||
// compter le déplacement : 1 deplacement horizontal et vertical max par pas de temps par entité
|
// compter le déplacement : 1 deplacement horizontal et vertical max par pas de temps par entité
|
||||||
|
Entite ent = (Entite) e;
|
||||||
|
|
||||||
switch (d) {
|
switch (d) {
|
||||||
case bas:
|
case bas:
|
||||||
case haut:
|
case haut:
|
||||||
if (cmptDeplV.get(e) == null) {
|
if (cmptDeplV.get(ent) == null) {
|
||||||
cmptDeplV.put(e, 1);
|
cmptDeplV.put(ent, 1);
|
||||||
|
|
||||||
retour = true;
|
retour = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case gauche:
|
case gauche:
|
||||||
case droite:
|
case droite:
|
||||||
if (cmptDeplH.get(e) == null) {
|
if (cmptDeplH.get(ent) == null) {
|
||||||
cmptDeplH.put(e, 1);
|
cmptDeplH.put(ent, 1);
|
||||||
retour = true;
|
retour = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
if (retour) {
|
||||||
|
deplacerEntite(pCourant, pCible, ent);
|
||||||
if (retour) {
|
}
|
||||||
deplacerEntite(pCourant, pCible, e);
|
} else if (e instanceof modele.donnees.Items) {
|
||||||
|
retour = true;
|
||||||
|
retirerItem(pCourant, (modele.donnees.Items) e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return retour;
|
return retour;
|
||||||
@ -165,6 +177,11 @@ public class Jeu {
|
|||||||
grilleEntites[pCible.x][pCible.y][0] = e;
|
grilleEntites[pCible.x][pCible.y][0] = e;
|
||||||
map.put(e, pCible);
|
map.put(e, pCible);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void retirerItem(Point pCourant, modele.donnees.Items elt) {
|
||||||
|
grilleEntites[pCourant.x][pCourant.y][1] = null;
|
||||||
|
map.put((ElementDynamique) elt, new Point(-1, -1));
|
||||||
|
}
|
||||||
|
|
||||||
/** Indique si p est contenu dans la grille
|
/** Indique si p est contenu dans la grille
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user