Modification des Tuiles + ajout tuile en haut à gauche
This commit is contained in:
@@ -54,5 +54,5 @@ public class Options {
|
||||
|
||||
public static boolean AUTO_FOCUS = true;
|
||||
|
||||
public static final int MAX_TILE_NUMBER = 5;
|
||||
public static final int MAX_TILE_NUMBER = 50;
|
||||
}
|
||||
|
@@ -64,11 +64,11 @@ public class MainMenuButtonController implements ActionListener {
|
||||
String command = e.getActionCommand();
|
||||
|
||||
switch (command) {
|
||||
case "Nouvelle partie":
|
||||
case "Jouer":
|
||||
startNewGame();
|
||||
break;
|
||||
case "Continuer une partie":
|
||||
continueGame();
|
||||
case "Récompenses":
|
||||
openRecompense();
|
||||
break;
|
||||
case "Comment jouer ?":
|
||||
showHowToPlay();
|
||||
@@ -106,8 +106,8 @@ public class MainMenuButtonController implements ActionListener {
|
||||
|
||||
|
||||
|
||||
private void continueGame() {
|
||||
System.out.println("Continuer une partie...");
|
||||
private void openRecompense() {
|
||||
System.out.println("Récompenses...");
|
||||
// Logic to continue the game
|
||||
}
|
||||
|
||||
|
@@ -30,6 +30,7 @@ public class Board extends JPanel{
|
||||
private double zoomFactor = 1.0; // Facteur de zoom initial
|
||||
private int offsetX = 0; // Décalage horizontal du plateau
|
||||
private int offsetY = 0; // Décalage vertical du plateau
|
||||
private Tile nextTile;
|
||||
|
||||
|
||||
// Constructeur avec seed
|
||||
@@ -63,6 +64,13 @@ public class Board extends JPanel{
|
||||
});
|
||||
}
|
||||
|
||||
private void initializeNextTile() {
|
||||
int offsetX = 50; // Décalage pour la position en haut à gauche
|
||||
int offsetY = 50; // Décalage pour la position en haut à gauche
|
||||
this.nextTile = new Tile(this, offsetX, offsetY, 50); // Création de la nouvelle tuile
|
||||
|
||||
}
|
||||
|
||||
public void handleSpaceKeyPress() {
|
||||
// Calculer les dimensions totales du plateau (largeur et hauteur des tuiles)
|
||||
int totalWidth = 0;
|
||||
@@ -154,6 +162,7 @@ public class Board extends JPanel{
|
||||
|
||||
// Calculer les positions disponibles autour de la tuile centrale
|
||||
calculateAvailablePositions(centralTile);
|
||||
initializeNextTile();
|
||||
}
|
||||
|
||||
public void repositionCentralTile() {
|
||||
@@ -231,16 +240,20 @@ public class Board extends JPanel{
|
||||
// Vérifie si la position est disponible et que la tuile n'est pas déjà placée à cet endroit
|
||||
if (availablePositions.contains(position) && !isTileAtPosition(position)) {
|
||||
if (tiles.size() < Options.MAX_TILE_NUMBER) {
|
||||
Tile newTile = new Tile(this, position.x, position.y, 50);
|
||||
// Vérifiez si la nextTile existe, sinon on ignore
|
||||
if (nextTile != null) {
|
||||
// Place la nextTile à la position choisie
|
||||
nextTile.setPosition(position.x, position.y);
|
||||
addTile(nextTile); // Ajoute la nextTile au tableau des tuiles
|
||||
calculateAvailablePositions(nextTile); // Calcule de nouvelles positions disponibles
|
||||
repaint(); // Redessine le plateau
|
||||
autoReFocus(nextTile);
|
||||
|
||||
// Initialiser une nouvelle nextTile pour le prochain tour
|
||||
initializeNextTile();
|
||||
|
||||
// Vérifier que la tuile ne se chevauche pas avec l'ancienne tuile
|
||||
if (!isTileAtPosition(new Point(newTile.getXCoord(), newTile.getYCoord()))) {
|
||||
addTile(newTile);
|
||||
calculateAvailablePositions(newTile); // Calculer de nouvelles positions disponibles
|
||||
repaint(); // Re-dessiner le plateau
|
||||
}
|
||||
|
||||
autoReFocus(newTile); // Réinitialiser le zoom et le déplacement
|
||||
} else {
|
||||
// NOMBRE DE TUILES MAXIMUM ATTEINT
|
||||
// FIN DE LA PARTIE
|
||||
@@ -248,6 +261,7 @@ public class Board extends JPanel{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void autoReFocus(Tile newlyPlacedTile) {
|
||||
if (Options.AUTO_FOCUS) {
|
||||
// Récupérer les coordonnées de la nouvelle tuile
|
||||
@@ -333,5 +347,22 @@ public class Board extends JPanel{
|
||||
|
||||
tile.drawTileAt(g,tileX-50,tileY-50,1f);
|
||||
}
|
||||
|
||||
if (nextTile != null) {
|
||||
// Calculer la position correcte de la nextTile (en tenant compte du zoom et des décalages)
|
||||
int nextTileX = 0; // Position x dans l'espace global
|
||||
int nextTileY = 0; // Position y dans l'espace global
|
||||
|
||||
// Appliquer la transformation inverse (ne pas zoomer ni déplacer la nextTile)
|
||||
g2d.scale(1 / zoomFactor, 1 / zoomFactor); // Inverser le zoom
|
||||
g2d.translate(-offsetX, -offsetY); // Inverser le décalage (revenir à l'espace global)
|
||||
|
||||
// Dessiner la nextTile à sa position d'origine (0,0)
|
||||
nextTile.drawTileAt(g, nextTileX, nextTileY, 1f);
|
||||
|
||||
// Rétablir les transformations pour les autres éléments (tuiles existantes, etc.)
|
||||
g2d.translate(offsetX / zoomFactor, offsetY / zoomFactor); // Re-appliquer le décalage
|
||||
g2d.scale(zoomFactor, zoomFactor); // Re-appliquer le zoom
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -28,8 +28,8 @@ public class ButtonPanel extends JPanel {
|
||||
this.add(Box.createVerticalGlue());
|
||||
|
||||
// Créer les boutons avec un style personnalisé
|
||||
newGameButton = Button.createCustomTextButton("Nouvelle partie", fontSize);
|
||||
continueGameButton = Button.createCustomTextButton("Continuer une partie", fontSize);
|
||||
newGameButton = Button.createCustomTextButton("Jouer", fontSize);
|
||||
continueGameButton = Button.createCustomTextButton("Récompenses", fontSize);
|
||||
howToPlayButton = Button.createCustomTextButton("Comment jouer ?", fontSize);
|
||||
settingsButton = Button.createCustomTextButton("Paramètres", fontSize);
|
||||
exitButton = Button.createCustomTextButton("Quitter", fontSize);
|
||||
|
Reference in New Issue
Block a user