mirror of
https://forge.univ-lyon1.fr/tplifap4/gyromite_ya.git
synced 2024-02-27 13:31:49 +01:00
Retour a l'ecran titre quand le joueur meurt
This commit is contained in:
parent
2435e0308c
commit
53720579b3
@ -46,6 +46,8 @@ public class VueControleurGyromite extends JFrame implements Observer {
|
||||
private JComponent grilleJLabels = null;
|
||||
private JComponent titleScreen = null;
|
||||
|
||||
private int lastStateLoad = -1;
|
||||
|
||||
private KeyAdapter listenerJeu = new KeyAdapter() { // new KeyAdapter() { ... } est une instance de classe anonyme, il s'agit d'un objet qui correspond au controleur dans MVC
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
@ -77,8 +79,6 @@ public class VueControleurGyromite extends JFrame implements Observer {
|
||||
|
||||
chargerLesIcones();
|
||||
setUpFenetre();
|
||||
placerLesComposantsGraphiquesMenu();
|
||||
ajouterEcouteurClavierMenu();
|
||||
}
|
||||
|
||||
private void ajouterEcouteurClavierJeu() {
|
||||
@ -149,7 +149,7 @@ public class VueControleurGyromite extends JFrame implements Observer {
|
||||
grilleJLabels = null;
|
||||
}
|
||||
titleScreen = new JLabel();
|
||||
((JLabel) titleScreen).setIcon(titleImage);
|
||||
titleScreen.setBackground(Color.BLACK);
|
||||
add(titleScreen);
|
||||
}
|
||||
|
||||
@ -185,11 +185,21 @@ public class VueControleurGyromite extends JFrame implements Observer {
|
||||
public void update(Observable o, Object arg) {
|
||||
switch (jeu.getState()) {
|
||||
case 0:
|
||||
if(lastStateLoad != 0) {
|
||||
placerLesComposantsGraphiquesMenu();
|
||||
ajouterEcouteurClavierMenu();
|
||||
((JLabel) titleScreen).setIcon(titleImage);
|
||||
lastStateLoad = 0;
|
||||
}
|
||||
((JLabel) titleScreen).setIcon(titleImage);
|
||||
break;
|
||||
case 3:
|
||||
placerLesComposantsGraphiquesJeu();
|
||||
ajouterEcouteurClavierJeu();
|
||||
case 4:
|
||||
case 2:
|
||||
if(lastStateLoad != 2) {
|
||||
placerLesComposantsGraphiquesJeu();
|
||||
ajouterEcouteurClavierJeu();
|
||||
mettreAJourAffichage();
|
||||
lastStateLoad = 2;
|
||||
}
|
||||
mettreAJourAffichage();
|
||||
break;
|
||||
}
|
||||
|
@ -38,16 +38,15 @@ public class Jeu {
|
||||
|
||||
private Ordonnanceur ordonnanceur = new Ordonnanceur(this);
|
||||
|
||||
// Etat du jeu courant. 0 = ecran titre, 2 = Menu choix, 4 = Plateau Jeu (les valeurs entre sont les valeurs de transitions)
|
||||
private int state = 0;
|
||||
// Etat du jeu courant. 0 = ecran titre, 1 = Menu choix, 2 = Plateau Jeu
|
||||
private int state;
|
||||
|
||||
public synchronized int getState() {
|
||||
int retour = state;
|
||||
if (state % 2 == 1) state ++;
|
||||
return retour;
|
||||
return state;
|
||||
}
|
||||
|
||||
public Jeu() {
|
||||
MenuInput.getInstance().addEntiteDynamique(new Menu(this));
|
||||
startTitleScreen();
|
||||
}
|
||||
|
||||
@ -63,6 +62,11 @@ public class Jeu {
|
||||
public ObjetGyromide[][][] getGrille() {
|
||||
return grilleEntites;
|
||||
}
|
||||
private void resetJeu() {
|
||||
grilleEntites = new ObjetGyromide[SIZE_X][SIZE_Y][2];
|
||||
map.clear();
|
||||
hector = null;
|
||||
}
|
||||
|
||||
public Heros getHector() {
|
||||
return hector;
|
||||
@ -70,15 +74,15 @@ public class Jeu {
|
||||
|
||||
// PARTIE INITIALISATIONS
|
||||
private void initialisationDesEntites() {
|
||||
this.state = 3;
|
||||
this.state = 2;
|
||||
getOrdonnanceur().clear();
|
||||
resetJeu();
|
||||
LecteurFichier.loadMap("Map/test.gyro", this);
|
||||
System.out.println("Map loaded");
|
||||
}
|
||||
|
||||
public void startTitleScreen() {
|
||||
this.state = 0;
|
||||
|
||||
MenuInput.getInstance().addEntiteDynamique(new Menu(this));
|
||||
getOrdonnanceur().clear();
|
||||
|
||||
ordonnanceur.add(MenuInput.getInstance());
|
||||
}
|
||||
@ -170,7 +174,7 @@ public class Jeu {
|
||||
|
||||
private void killEntite(Entite e, Point pCourant) {
|
||||
grilleEntites[pCourant.x][pCourant.y][1] = null;
|
||||
map.put(e, null);
|
||||
map.remove(e);
|
||||
|
||||
e.tuer();
|
||||
|
||||
@ -180,7 +184,9 @@ public class Jeu {
|
||||
}
|
||||
// TODO
|
||||
private void killPlayer(Entite e) {
|
||||
startTitleScreen();
|
||||
System.out.println("Techniquement le joueur est mort");
|
||||
|
||||
}
|
||||
|
||||
private boolean deplacerColonne(Colonne c, Point pCible, Direction d) {
|
||||
|
@ -10,13 +10,21 @@ public class Ordonnanceur extends Observable implements Runnable {
|
||||
private ArrayList<RealisateurDeDeplacement> lstDeplacements = new ArrayList<RealisateurDeDeplacement>();
|
||||
private ArrayList<RealisateurDeDeplacement> buffer_lstDeplacements = new ArrayList<RealisateurDeDeplacement>();
|
||||
private long pause;
|
||||
private boolean toClear = false;
|
||||
|
||||
public void add(RealisateurDeDeplacement deplacement) {
|
||||
buffer_lstDeplacements.add(deplacement);
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
toClear = true;
|
||||
}
|
||||
|
||||
private void addBuffer() {
|
||||
for (RealisateurDeDeplacement r : buffer_lstDeplacements)
|
||||
lstDeplacements.add(r);
|
||||
buffer_lstDeplacements.clear();
|
||||
forceUpdate();
|
||||
}
|
||||
|
||||
public Ordonnanceur(Jeu _jeu) {
|
||||
@ -28,13 +36,15 @@ public class Ordonnanceur extends Observable implements Runnable {
|
||||
new Thread(this).start();
|
||||
}
|
||||
|
||||
public void forceUpdate() {
|
||||
setChanged();
|
||||
notifyObservers();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
boolean update = false;
|
||||
|
||||
setChanged();
|
||||
notifyObservers();
|
||||
|
||||
while(true) {
|
||||
switch (jeu.getState()) {
|
||||
case 0:
|
||||
@ -45,8 +55,7 @@ public class Ordonnanceur extends Observable implements Runnable {
|
||||
|
||||
MenuInput.getInstance().resetDirection();
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
case 2:
|
||||
jeu.resetCmptDepl();
|
||||
for (RealisateurDeDeplacement d : lstDeplacements) {
|
||||
if (d.realiserDeplacement())
|
||||
@ -63,6 +72,8 @@ public class Ordonnanceur extends Observable implements Runnable {
|
||||
notifyObservers();
|
||||
}
|
||||
|
||||
if(toClear) {lstDeplacements.clear();toClear = false;}
|
||||
|
||||
addBuffer();
|
||||
|
||||
try {
|
||||
|
@ -13,7 +13,7 @@ public abstract class DecorFond extends ElementFond {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean estRectable() {
|
||||
public boolean estRecoltable() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user