Squashed commit of the following:

commit a8f543114e
Author: ROGER <gwendal.roger@etu.univ-lyon1.fr>
Date:   Mon May 19 21:59:38 2025 +0200

    ajout d'une fonctionnalité permettant de mettre en pause le Jeu grace à un bouton. Ajout d'un vérouillage du clavier pendant lause

commit 27862eb3cd
Author: ROGER <gwendal.roger@etu.univ-lyon1.fr>
Date:   Fri May 16 17:10:15 2025 +0200

    Ajoute de l'arret de la musique en fin de partie + arret propre de l'ordonanceur

commit 2fec9fc96e
Author: ROGER <gwendal.roger@etu.univ-lyon1.fr>
Date:   Fri May 16 16:17:58 2025 +0200

    integration du responsive dans l'affichage de la grille
This commit is contained in:
Morph01
2025-05-19 22:16:42 +02:00
committed by Morph01
parent 85aafa8240
commit aa6ab95728
6 changed files with 35 additions and 27 deletions

View File

@@ -22,7 +22,7 @@ public class App {
Grille grille = new Grille(20, 10);
Musique musique = new Musique();
musique.start();
Jeu jeu = new Jeu(grille,musique);
Jeu jeu = new Jeu(grille, musique);
// Views
VueTetris vueTetris = new VueTetris(grille, jeu);
@@ -31,6 +31,10 @@ public class App {
IO io = new IO(jeu);
vueTetris.addKeyListener(io);
new TetrisBandeauControleur(vueTetris.getVueBandeauControle(), musique, grille);//Création d'un controleur de bandeau avec la musique instanciée
new TetrisBandeauControleur(vueTetris.getVueBandeauControle(), musique, grille);// Création d'un
// controleur de
// bandeau avec la
// musique
// instanciée
}
}

View File

@@ -16,7 +16,7 @@ public class IO implements KeyListener {
@Override
public void keyPressed(KeyEvent e) {
if (jeu.getGrille().estEnPause()){
if (jeu.getGrille().estEnPause()) {
System.err.println("Grille est en pause");
return;
}

View File

@@ -232,8 +232,6 @@ public class Grille extends Observable { // TODO: ?? implements Runnable {
return enPause;
}
// public void verifierEtSupprimerLignesSiBesoin() {
// for (int i = nbLignes - 1; i > 0; i--) {

View File

@@ -1,5 +1,6 @@
package org.Views;
import org.Models.GridLayoutCarre;
import org.Models.GridLayoutCarre;
import org.Models.PieceCourante;
@@ -117,5 +118,4 @@ public class VueBandeauControle extends JPanel {
nextPiecePanel.repaint();
}
}

View File

@@ -1,5 +1,6 @@
package org.Views;
import javax.swing.*;
import javax.swing.*;
import org.Models.*;
@@ -32,14 +33,14 @@ public class VueGrille extends JPanel implements Observer, Runnable {
this.nbLignes = grille.getNbLignes();
this.nbColonnes = grille.getNbColonnes();
setLayout(new BorderLayout());
grillePanel = new JPanel(new GridLayoutCarre(nbLignes,nbColonnes)); //pour que les cases soient carrés
grillePanel = new JPanel(new GridLayoutCarre(nbLignes, nbColonnes)); // pour que les cases soient carrés
add(grillePanel, BorderLayout.CENTER);
casesGrille = new JPanel[nbLignes][nbColonnes];
for (int i = 0; i < nbLignes; i++) {
for (int j = 0; j < nbColonnes; j++) {
JPanel caseG = new JPanel(){
JPanel caseG = new JPanel() {
@Override
public Dimension getPreferredSize(){
public Dimension getPreferredSize() {
return super.getPreferredSize();
}
};
@@ -60,7 +61,7 @@ public class VueGrille extends JPanel implements Observer, Runnable {
public void resizeCases() {
int largeurPanel = grillePanel.getWidth();
int hauteurPanel = grillePanel.getHeight();
if (largeurPanel==0||hauteurPanel==0) {
if (largeurPanel == 0 || hauteurPanel == 0) {
return;
}
int taille = Math.min(largeurPanel, hauteurPanel);
@@ -71,7 +72,7 @@ public class VueGrille extends JPanel implements Observer, Runnable {
int tailleCaseX = largeurPanel / nbColonnes;
int tailleCaseY = hauteurPanel / nbLignes;
int tailleCase = Math.min(tailleCaseX, tailleCaseY);
Dimension taillePreferee=new Dimension(tailleCase, tailleCase);
Dimension taillePreferee = new Dimension(tailleCase, tailleCase);
for (int i = 0; i < nbLignes; i++) {
for (int j = 0; j < nbColonnes; j++) {
casesGrille[i][j].setPreferredSize(taillePreferee);

View File

@@ -7,6 +7,8 @@ import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
public class VueTetris extends JFrame {
private static Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
@@ -14,13 +16,16 @@ public class VueTetris extends JFrame {
public static double tailleJFrameY = screenSize.getHeight() / 2;
private VueGrille vueGrille;
private VueBandeauControle vueControle;
private VueGrille vueGrille;
private VueBandeauControle vueControle;
public VueTetris(Grille grille, Jeu jeu) {
super("Tetris");
this.vueGrille = new VueGrille(grille, jeu);
this.vueControle = new VueBandeauControle();
//TetrisBandeauControleur controleur = new TetrisBandeauControleur(vueControle);
// TetrisBandeauControleur controleur = new
// TetrisBandeauControleur(vueControle);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
@@ -31,7 +36,7 @@ public class VueTetris extends JFrame {
setSize((int) tailleJFrameX, (int) tailleJFrameY);
setLocationRelativeTo(null);
//listener permettanbt de redimensionner les cases de la grille
// listener permettanbt de redimensionner les cases de la grille
addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {