mirror of
https://forge.univ-lyon1.fr/tplifap4/gyromite_ya.git
synced 2024-02-27 13:31:49 +01:00
Transition entite to element dynamique
This commit is contained in:
parent
f05bd67d8f
commit
6515ac97c6
@ -1,9 +1,6 @@
|
||||
package modele.calculs;
|
||||
|
||||
import modele.donnees.ElementFond;
|
||||
import modele.donnees.ElementPhysique;
|
||||
import modele.donnees.Entite;
|
||||
import modele.donnees.EntiteDynamique;
|
||||
import modele.donnees.*;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
@ -28,8 +25,8 @@ public class Controle4Directions extends RealisateurDeDeplacement {
|
||||
|
||||
public boolean realiserDeplacement() {
|
||||
boolean ret = false;
|
||||
for (Entite e : lstEntitesDynamiques) {
|
||||
if (directionCourante != null)
|
||||
for (ElementDynamique e : lstEntitesDynamiques) {
|
||||
if (e instanceof Entite && directionCourante != null)
|
||||
switch (directionCourante) {
|
||||
case gauche:
|
||||
case droite:
|
||||
@ -38,19 +35,11 @@ public class Controle4Directions extends RealisateurDeDeplacement {
|
||||
break;
|
||||
case bas:
|
||||
case haut:
|
||||
ElementFond ef = e.regarderDerriereSoit();
|
||||
ElementFond ef = ((Entite) e).regarderDerriereSoit();
|
||||
|
||||
if(ef != null && ef.peutPermettreDeMonterDescendre()) {
|
||||
ret = e.avancerDirectionChoisie(directionCourante);
|
||||
}
|
||||
/*
|
||||
// on ne peut pas sauter sans prendre appui
|
||||
// (attention, test d'appui réalisé à partir de la position courante, si la gravité à été appliquée, il ne s'agit pas de la position affichée, amélioration possible)
|
||||
ElementPhysique eBas = e.regarderDansLaDirection(Direction.bas);
|
||||
if (eBas != null && eBas.peutServirDeSupport()) {
|
||||
if (e.avancerDirectionChoisie(Direction.haut))
|
||||
ret = true;
|
||||
}*/
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -7,13 +7,15 @@ public class Gravite extends RealisateurDeDeplacement {
|
||||
public boolean realiserDeplacement() {
|
||||
boolean ret = false;
|
||||
|
||||
for (Entite e : lstEntitesDynamiques) {
|
||||
ElementPhysique eBas = e.regarderDansLaDirection(Direction.bas);
|
||||
ElementFond eFond = e.regarderDerriereSoit();
|
||||
if(!(eFond != null && eFond.peutPermettreDeMonterDescendre())
|
||||
&& eBas == null || (eBas != null && !eBas.peutServirDeSupport())) {
|
||||
if (e.avancerDirectionChoisie(Direction.bas))
|
||||
ret = true;
|
||||
for (ElementDynamique e : lstEntitesDynamiques) {
|
||||
if(e instanceof Entite) {
|
||||
ElementPhysique eBas = ((Entite) e).regarderDansLaDirection(Direction.bas);
|
||||
ElementFond eFond = ((Entite) e).regarderDerriereSoit();
|
||||
if (!(eFond != null && eFond.peutPermettreDeMonterDescendre())
|
||||
&& eBas == null || (eBas != null && !eBas.peutServirDeSupport())) {
|
||||
if (e.avancerDirectionChoisie(Direction.bas))
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package modele.calculs;
|
||||
|
||||
import modele.donnees.ElementDynamique;
|
||||
import modele.donnees.Entite;
|
||||
import modele.donnees.EntiteDynamique;
|
||||
|
||||
@ -9,8 +10,8 @@ import java.util.ArrayList;
|
||||
Tous les déplacement sont déclenchés par cette classe (gravité, controle clavier, IA, etc.)
|
||||
*/
|
||||
public abstract class RealisateurDeDeplacement {
|
||||
protected ArrayList<Entite> lstEntitesDynamiques = new ArrayList<Entite>();
|
||||
protected ArrayList<ElementDynamique> lstEntitesDynamiques = new ArrayList<ElementDynamique>();
|
||||
protected abstract boolean realiserDeplacement();
|
||||
|
||||
public void addEntiteDynamique(Entite ed) {lstEntitesDynamiques.add(ed);};
|
||||
public void addEntiteDynamique(ElementDynamique ed) {lstEntitesDynamiques.add(ed);};
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package modele.donnees;
|
||||
|
||||
public interface ElementDynamique {
|
||||
import modele.calculs.Direction;
|
||||
|
||||
public interface ElementDynamique {
|
||||
boolean avancerDirectionChoisie(Direction d);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user