Ajout d'un visualisateur de tuiles restantes

This commit is contained in:
2024-12-04 14:48:07 +01:00
parent 5a9ecd2da0
commit 788bcfe6f9
3 changed files with 103 additions and 1 deletions

View File

@@ -49,6 +49,8 @@ public class Board extends JPanel{
private ScoreManager scoreManager;
private int currentScore;
private Database database;
private RemainingTilesIndicator remainingTilesIndicator;
// Constructeur avec seed
public Board(JFrame gameFrame, long seed) {
@@ -85,6 +87,8 @@ public class Board extends JPanel{
gameFrame.addKeyListener(new PauseGame(gameFrame, game));
gameFrame.setFocusable(true);
this.remainingTilesIndicator = new RemainingTilesIndicator(Options.MAX_TILE_NUMBER);
this.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(java.awt.event.MouseEvent e) {
@@ -322,6 +326,8 @@ public class Board extends JPanel{
if (tiles.size() < Options.MAX_TILE_NUMBER) {
// Vérifiez si la nextTile existe, sinon on ignore
if (nextTile != null) {
remainingTilesIndicator.setRemainingTiles(Options.MAX_TILE_NUMBER - tiles.size());
// Place la nextTile à la position choisie
nextTile.setPosition(position.x, position.y);
addTile(nextTile); // Ajoute la nextTile au tableau des tuiles
@@ -456,6 +462,11 @@ public class Board extends JPanel{
// Dessiner la nextTile à sa position d'origine (0,0)
nextTile.drawTileAt(g, nextTileX, nextTileY, 1f);
int indicatorX = getWidth() - 70; // Position x de l'indicateur
int indicatorY = getHeight() - 670; // Positionner la pile près du bas
remainingTilesIndicator.draw(g2d, indicatorX, indicatorY);
// 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