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 grilleJLabels = null;
|
||||||
private JComponent titleScreen = 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
|
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
|
@Override
|
||||||
public void keyPressed(KeyEvent e) {
|
public void keyPressed(KeyEvent e) {
|
||||||
@ -77,8 +79,6 @@ public class VueControleurGyromite extends JFrame implements Observer {
|
|||||||
|
|
||||||
chargerLesIcones();
|
chargerLesIcones();
|
||||||
setUpFenetre();
|
setUpFenetre();
|
||||||
placerLesComposantsGraphiquesMenu();
|
|
||||||
ajouterEcouteurClavierMenu();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ajouterEcouteurClavierJeu() {
|
private void ajouterEcouteurClavierJeu() {
|
||||||
@ -149,7 +149,7 @@ public class VueControleurGyromite extends JFrame implements Observer {
|
|||||||
grilleJLabels = null;
|
grilleJLabels = null;
|
||||||
}
|
}
|
||||||
titleScreen = new JLabel();
|
titleScreen = new JLabel();
|
||||||
((JLabel) titleScreen).setIcon(titleImage);
|
titleScreen.setBackground(Color.BLACK);
|
||||||
add(titleScreen);
|
add(titleScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,11 +185,21 @@ public class VueControleurGyromite extends JFrame implements Observer {
|
|||||||
public void update(Observable o, Object arg) {
|
public void update(Observable o, Object arg) {
|
||||||
switch (jeu.getState()) {
|
switch (jeu.getState()) {
|
||||||
case 0:
|
case 0:
|
||||||
|
if(lastStateLoad != 0) {
|
||||||
|
placerLesComposantsGraphiquesMenu();
|
||||||
|
ajouterEcouteurClavierMenu();
|
||||||
|
((JLabel) titleScreen).setIcon(titleImage);
|
||||||
|
lastStateLoad = 0;
|
||||||
|
}
|
||||||
|
((JLabel) titleScreen).setIcon(titleImage);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 2:
|
||||||
|
if(lastStateLoad != 2) {
|
||||||
placerLesComposantsGraphiquesJeu();
|
placerLesComposantsGraphiquesJeu();
|
||||||
ajouterEcouteurClavierJeu();
|
ajouterEcouteurClavierJeu();
|
||||||
case 4:
|
mettreAJourAffichage();
|
||||||
|
lastStateLoad = 2;
|
||||||
|
}
|
||||||
mettreAJourAffichage();
|
mettreAJourAffichage();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -38,16 +38,15 @@ public class Jeu {
|
|||||||
|
|
||||||
private Ordonnanceur ordonnanceur = new Ordonnanceur(this);
|
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)
|
// Etat du jeu courant. 0 = ecran titre, 1 = Menu choix, 2 = Plateau Jeu
|
||||||
private int state = 0;
|
private int state;
|
||||||
|
|
||||||
public synchronized int getState() {
|
public synchronized int getState() {
|
||||||
int retour = state;
|
return state;
|
||||||
if (state % 2 == 1) state ++;
|
|
||||||
return retour;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Jeu() {
|
public Jeu() {
|
||||||
|
MenuInput.getInstance().addEntiteDynamique(new Menu(this));
|
||||||
startTitleScreen();
|
startTitleScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,6 +62,11 @@ public class Jeu {
|
|||||||
public ObjetGyromide[][][] getGrille() {
|
public ObjetGyromide[][][] getGrille() {
|
||||||
return grilleEntites;
|
return grilleEntites;
|
||||||
}
|
}
|
||||||
|
private void resetJeu() {
|
||||||
|
grilleEntites = new ObjetGyromide[SIZE_X][SIZE_Y][2];
|
||||||
|
map.clear();
|
||||||
|
hector = null;
|
||||||
|
}
|
||||||
|
|
||||||
public Heros getHector() {
|
public Heros getHector() {
|
||||||
return hector;
|
return hector;
|
||||||
@ -70,15 +74,15 @@ public class Jeu {
|
|||||||
|
|
||||||
// PARTIE INITIALISATIONS
|
// PARTIE INITIALISATIONS
|
||||||
private void initialisationDesEntites() {
|
private void initialisationDesEntites() {
|
||||||
this.state = 3;
|
this.state = 2;
|
||||||
|
getOrdonnanceur().clear();
|
||||||
|
resetJeu();
|
||||||
LecteurFichier.loadMap("Map/test.gyro", this);
|
LecteurFichier.loadMap("Map/test.gyro", this);
|
||||||
System.out.println("Map loaded");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startTitleScreen() {
|
public void startTitleScreen() {
|
||||||
this.state = 0;
|
this.state = 0;
|
||||||
|
getOrdonnanceur().clear();
|
||||||
MenuInput.getInstance().addEntiteDynamique(new Menu(this));
|
|
||||||
|
|
||||||
ordonnanceur.add(MenuInput.getInstance());
|
ordonnanceur.add(MenuInput.getInstance());
|
||||||
}
|
}
|
||||||
@ -170,7 +174,7 @@ public class Jeu {
|
|||||||
|
|
||||||
private void killEntite(Entite e, Point pCourant) {
|
private void killEntite(Entite e, Point pCourant) {
|
||||||
grilleEntites[pCourant.x][pCourant.y][1] = null;
|
grilleEntites[pCourant.x][pCourant.y][1] = null;
|
||||||
map.put(e, null);
|
map.remove(e);
|
||||||
|
|
||||||
e.tuer();
|
e.tuer();
|
||||||
|
|
||||||
@ -180,7 +184,9 @@ public class Jeu {
|
|||||||
}
|
}
|
||||||
// TODO
|
// TODO
|
||||||
private void killPlayer(Entite e) {
|
private void killPlayer(Entite e) {
|
||||||
|
startTitleScreen();
|
||||||
System.out.println("Techniquement le joueur est mort");
|
System.out.println("Techniquement le joueur est mort");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean deplacerColonne(Colonne c, Point pCible, Direction d) {
|
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> lstDeplacements = new ArrayList<RealisateurDeDeplacement>();
|
||||||
private ArrayList<RealisateurDeDeplacement> buffer_lstDeplacements = new ArrayList<RealisateurDeDeplacement>();
|
private ArrayList<RealisateurDeDeplacement> buffer_lstDeplacements = new ArrayList<RealisateurDeDeplacement>();
|
||||||
private long pause;
|
private long pause;
|
||||||
|
private boolean toClear = false;
|
||||||
|
|
||||||
public void add(RealisateurDeDeplacement deplacement) {
|
public void add(RealisateurDeDeplacement deplacement) {
|
||||||
buffer_lstDeplacements.add(deplacement);
|
buffer_lstDeplacements.add(deplacement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clear() {
|
||||||
|
toClear = true;
|
||||||
|
}
|
||||||
|
|
||||||
private void addBuffer() {
|
private void addBuffer() {
|
||||||
for (RealisateurDeDeplacement r : buffer_lstDeplacements)
|
for (RealisateurDeDeplacement r : buffer_lstDeplacements)
|
||||||
lstDeplacements.add(r);
|
lstDeplacements.add(r);
|
||||||
buffer_lstDeplacements.clear();
|
buffer_lstDeplacements.clear();
|
||||||
|
forceUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Ordonnanceur(Jeu _jeu) {
|
public Ordonnanceur(Jeu _jeu) {
|
||||||
@ -28,13 +36,15 @@ public class Ordonnanceur extends Observable implements Runnable {
|
|||||||
new Thread(this).start();
|
new Thread(this).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void forceUpdate() {
|
||||||
|
setChanged();
|
||||||
|
notifyObservers();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
boolean update = false;
|
boolean update = false;
|
||||||
|
|
||||||
setChanged();
|
|
||||||
notifyObservers();
|
|
||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
switch (jeu.getState()) {
|
switch (jeu.getState()) {
|
||||||
case 0:
|
case 0:
|
||||||
@ -45,8 +55,7 @@ public class Ordonnanceur extends Observable implements Runnable {
|
|||||||
|
|
||||||
MenuInput.getInstance().resetDirection();
|
MenuInput.getInstance().resetDirection();
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 2:
|
||||||
case 4:
|
|
||||||
jeu.resetCmptDepl();
|
jeu.resetCmptDepl();
|
||||||
for (RealisateurDeDeplacement d : lstDeplacements) {
|
for (RealisateurDeDeplacement d : lstDeplacements) {
|
||||||
if (d.realiserDeplacement())
|
if (d.realiserDeplacement())
|
||||||
@ -63,6 +72,8 @@ public class Ordonnanceur extends Observable implements Runnable {
|
|||||||
notifyObservers();
|
notifyObservers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(toClear) {lstDeplacements.clear();toClear = false;}
|
||||||
|
|
||||||
addBuffer();
|
addBuffer();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -13,7 +13,7 @@ public abstract class DecorFond extends ElementFond {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean estRectable() {
|
public boolean estRecoltable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user