Makefile + correction de dépendance circulaire
This commit is contained in:
parent
07515d748d
commit
286590398c
98
src/main/Makefile
Normal file
98
src/main/Makefile
Normal file
@ -0,0 +1,98 @@
|
||||
### VARIABLES ###
|
||||
|
||||
JC = javac
|
||||
JCFLAGS = -encoding UTF-8 -implicit:none -d classes
|
||||
|
||||
JVM = java
|
||||
JVMFLAGS =
|
||||
|
||||
### RÈGLES ESSENTIELLES ###
|
||||
|
||||
Main.class: Main.java java/controller/MenuController.class java/view/MenuView.class java/controller/GameController.class
|
||||
$(JC) $(JCFLAGS) Main.java
|
||||
|
||||
java/controller/MenuController.class: java/controller/MenuController.java java/model/MenuModel.class java/view/MenuView.class java/controller/NewListener.class java/controller/QuiListener.class java/controller/ResListener.class
|
||||
$(JC) $(JCFLAGS) java/controller/MenuController.java
|
||||
|
||||
java/controller/NewListener.class: java/controller/NewListener.java
|
||||
$(JC) $(JCFLAGS) java/controller/NewListener.java
|
||||
|
||||
java/controller/QuiListener.class: java/controller/QuiListener.java
|
||||
$(JC) $(JCFLAGS) java/controller/QuiListener.java
|
||||
|
||||
java/controller/ResListener.class: java/controller/ResListener.java java/view/GameView.class
|
||||
$(JC) $(JCFLAGS) java/controller/ResListener.java
|
||||
|
||||
java/view/GameView.class: java/view/GameView.java java/controller/MouseWheelController.class java/controller/GameController.class java/view/HexagonTile.class
|
||||
$(JC) $(JCFLAGS) java/view/GameView.java
|
||||
|
||||
java/controller/MouseWheelController.class: java/controller/MouseWheelController.java java/view/HexagonTile.class java/controller/GameController.class
|
||||
$(JC) $(JCFLAGS) java/controller/MouseWheelController.java
|
||||
|
||||
java/controller/HexagonMouseListener.class: java/controller/HexagonMouseListener.java java/view/HexagonTile.class java/controller/TilePlacer.class
|
||||
$(JC) $(JCFLAGS) java/controller/HexagonMouseListener.java
|
||||
|
||||
java/controller/GameController.class: java/controller/GameController.java java/controller/TilePlacer.class java/model/Tile.class java/controller/CameraController.class java/controller/HexagonMouseListener.class
|
||||
$(JC) $(JCFLAGS) java/controller/GameController.java
|
||||
|
||||
java/controller/CameraController.class: java/controller/CameraController.java java/controller/GameContext.class java/controller/MousePressHandler.class java/controller/MouseDragHandler.class
|
||||
$(JC) $(JCFLAGS) java/controller/CameraController.java
|
||||
|
||||
java/controller/GameContext.class: java/controller/GameContext.java java/view/HexagonTile.class
|
||||
$(JC) $(JCFLAGS) java/controller/GameContext.java
|
||||
|
||||
java/view/HexagonTile.class: java/view/HexagonTile.java java/model/Tile.class java/model/TerrainType.class
|
||||
$(JC) $(JCFLAGS) java/view/HexagonTile.java
|
||||
|
||||
java/model/MenuModel.class: java/model/MenuModel.java
|
||||
$(JC) $(JCFLAGS) java/model/MenuModel.java
|
||||
|
||||
java/view/MenuView.class: java/view/MenuView.java java/view/BtnPerso.class java/view/ButtonHoverListener.class
|
||||
$(JC) $(JCFLAGS) java/view/MenuView.java
|
||||
|
||||
java/model/Tile.class: java/model/Tile.java java/model/TerrainType.class
|
||||
$(JC) $(JCFLAGS) java/model/Tile.java
|
||||
|
||||
java/model/TerrainType.class: java/model/TerrainType.java
|
||||
$(JC) $(JCFLAGS) java/model/TerrainType.java
|
||||
|
||||
java/view/ButtonHoverListener.class: java/view/ButtonHoverListener.java
|
||||
$(JC) $(JCFLAGS) java/view/ButtonHoverListener.java
|
||||
|
||||
java/view/BtnPerso.class: java/view/BtnPerso.java
|
||||
$(JC) $(JCFLAGS) java/view/BtnPerso.java
|
||||
|
||||
java/controller/MousePressHandler.class: java/controller/MousePressHandler.java java/controller/CameraControllerListener.class
|
||||
$(JC) $(JCFLAGS) java/controller/MousePressHandler.java
|
||||
|
||||
java/controller/MouseDragHandler.class: java/controller/MouseDragHandler.java java/controller/CameraControllerListener.class
|
||||
$(JC) $(JCFLAGS) java/controller/MouseDragHandler.java
|
||||
|
||||
java/controller/CameraControllerListener.class: java/controller/CameraControllerListener.java
|
||||
$(JC) $(JCFLAGS) java/controller/CameraControllerListener.java
|
||||
|
||||
java/controller/TilePlacer.class: java/controller/TilePlacer.java
|
||||
$(JC) $(JCFLAGS) java/controller/TilePlacer.java
|
||||
|
||||
### RÈGLE POUR COPIER LES IMAGES ###
|
||||
|
||||
copy-images:
|
||||
mkdir -p classes/java/view/img
|
||||
if [ -d java/view/img ]; then cp -r java/view/img/* classes/java/view/img/; else echo "Le répertoire java/view/img n'existe pas."; fi
|
||||
|
||||
### RÈGLES OPTIONNELLES ###
|
||||
|
||||
run: Main.class copy-images
|
||||
$(JVM) $(JVMFLAGS) -cp classes main.Main
|
||||
|
||||
clean:
|
||||
-rm -f classes/**/*.class
|
||||
|
||||
mrproper: clean
|
||||
-rm -rf classes/java/view/img
|
||||
|
||||
### BUTS FACTICES ###
|
||||
|
||||
.PHONY: run clean mrproper copy-images
|
||||
|
||||
### FIN ###
|
BIN
src/main/classes/java/view/img/D.png
Normal file
BIN
src/main/classes/java/view/img/D.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 27 KiB |
BIN
src/main/classes/java/view/img/bg.png
Normal file
BIN
src/main/classes/java/view/img/bg.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 322 KiB |
BIN
src/main/classes/java/view/img/quit.png
Normal file
BIN
src/main/classes/java/view/img/quit.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 36 KiB |
@ -3,8 +3,7 @@ package controller;
|
||||
import javax.swing.JPanel;
|
||||
import java.awt.Point;
|
||||
|
||||
|
||||
public class CameraController {
|
||||
public class CameraController implements CameraControllerListener {
|
||||
|
||||
private Point mouseDragStart = null;
|
||||
private GameContext context;
|
||||
@ -16,6 +15,7 @@ public class CameraController {
|
||||
setupMouseDragToMove(gridPanel); // Initialise les écouteurs pour gérer le déplacement
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateViewOffset(int deltaX, int deltaY) {
|
||||
// Met à jour uniquement l'offset dans GameContext
|
||||
context.updateOffset(deltaX, deltaY);
|
||||
@ -27,18 +27,21 @@ public class CameraController {
|
||||
}
|
||||
|
||||
private void setupMouseDragToMove(JPanel gridPanel) {
|
||||
gridPanel.addMouseListener(new MousePressHandler(this, context));
|
||||
gridPanel.addMouseMotionListener(new MouseDragHandler(this, context));
|
||||
gridPanel.addMouseListener(new MousePressHandler(this));
|
||||
gridPanel.addMouseMotionListener(new MouseDragHandler(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMouseDragStart(Point point) {
|
||||
this.mouseDragStart = point;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Point getMouseDragStart() {
|
||||
return mouseDragStart;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetMouseDragStart() {
|
||||
this.mouseDragStart = null;
|
||||
}
|
||||
|
10
src/main/java/controller/CameraControllerListener.java
Normal file
10
src/main/java/controller/CameraControllerListener.java
Normal file
@ -0,0 +1,10 @@
|
||||
package controller;
|
||||
|
||||
import java.awt.Point;
|
||||
|
||||
public interface CameraControllerListener {
|
||||
void updateViewOffset(int deltaX, int deltaY);
|
||||
void setMouseDragStart(Point point);
|
||||
Point getMouseDragStart();
|
||||
void resetMouseDragStart();
|
||||
}
|
@ -8,7 +8,7 @@ import java.awt.Point;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class GameController {
|
||||
public class GameController implements TilePlacer {
|
||||
private Map<Point, HexagonTile> hexagonMap;
|
||||
private Set<Point> availablePositions;
|
||||
private JPanel gridPanel;
|
||||
@ -28,8 +28,8 @@ public class GameController {
|
||||
updatePreview();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void placeTile(Point position) {
|
||||
// Vérifier si la position est disponible
|
||||
if (availablePositions.contains(position)) {
|
||||
HexagonTile hexTile = hexagonMap.get(position);
|
||||
if (hexTile == null) {
|
||||
@ -37,27 +37,21 @@ public class GameController {
|
||||
return;
|
||||
}
|
||||
|
||||
// Assigner la tuile actuelle
|
||||
hexTile.setTile(nextTile);
|
||||
gridPanel.revalidate();
|
||||
gridPanel.repaint();
|
||||
|
||||
// Retirer la position des positions disponibles
|
||||
availablePositions.remove(position);
|
||||
|
||||
// Mettre à jour les positions adjacentes
|
||||
Point[] adjacentPositions = getAdjacentPositions(position);
|
||||
for (Point adj : adjacentPositions) {
|
||||
if (!hexagonMap.containsKey(adj)) {
|
||||
availablePositions.add(adj);
|
||||
addHexagonTile(adj, gridPanel, 50, null, null); // Ajouter des placeholders
|
||||
addHexagonTile(adj, gridPanel, 50, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
// Repeindre la grille
|
||||
gameContext.repaintGrid(gridPanel);
|
||||
|
||||
// Générer une nouvelle tuile pour la prochaine preview
|
||||
generateNextTile();
|
||||
}
|
||||
}
|
||||
@ -72,8 +66,6 @@ public class GameController {
|
||||
initialPosition.setLocation(centerX / 50, centerY / 50);
|
||||
|
||||
placeInitialTile(initialPosition, cameraController, initialTile);
|
||||
|
||||
// Générer la première tuile pour la preview
|
||||
generateNextTile();
|
||||
}
|
||||
|
||||
@ -126,7 +118,6 @@ public class GameController {
|
||||
}
|
||||
|
||||
public void generateNextTile() {
|
||||
// Génère une nouvelle tuile pour la prochaine pose
|
||||
nextTile = new Tile();
|
||||
updatePreview();
|
||||
}
|
||||
|
@ -8,12 +8,12 @@ import java.util.Set;
|
||||
|
||||
public class HexagonMouseListener extends MouseAdapter {
|
||||
private final HexagonTile hexTile;
|
||||
private final GameController gameController;
|
||||
private final TilePlacer tilePlacer;
|
||||
private final Set<Point> availablePositions;
|
||||
|
||||
public HexagonMouseListener(HexagonTile hexTile, GameController gameController, Set<Point> availablePositions) {
|
||||
public HexagonMouseListener(HexagonTile hexTile, TilePlacer tilePlacer, Set<Point> availablePositions) {
|
||||
this.hexTile = hexTile;
|
||||
this.gameController = gameController;
|
||||
this.tilePlacer = tilePlacer;
|
||||
this.availablePositions = availablePositions;
|
||||
}
|
||||
|
||||
@ -22,12 +22,7 @@ public class HexagonMouseListener extends MouseAdapter {
|
||||
Point position = hexTile.getPosition();
|
||||
if (availablePositions.contains(position)) {
|
||||
System.out.println("Hexagone cliqué à la position : " + position);
|
||||
|
||||
// Appeler le GameController pour placer une nouvelle tuile à cet emplacement
|
||||
gameController.placeTile(position);
|
||||
|
||||
// Générer la prochaine tuile après avoir placé celle-ci
|
||||
gameController.generateNextTile();
|
||||
tilePlacer.placeTile(position);
|
||||
} else {
|
||||
System.out.println("Position non disponible pour le placement");
|
||||
}
|
||||
|
@ -7,31 +7,31 @@ import javax.swing.SwingUtilities;
|
||||
|
||||
public class MouseDragHandler extends MouseAdapter {
|
||||
|
||||
private CameraController controller;
|
||||
private CameraControllerListener listener;
|
||||
|
||||
public MouseDragHandler(CameraController controller, GameContext context) {
|
||||
this.controller = controller;
|
||||
public MouseDragHandler(CameraControllerListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseDragged(MouseEvent e) {
|
||||
if (controller.getMouseDragStart() != null && SwingUtilities.isRightMouseButton(e)) {
|
||||
if (listener.getMouseDragStart() != null && SwingUtilities.isRightMouseButton(e)) {
|
||||
Point current = e.getPoint();
|
||||
int deltaX = current.x - controller.getMouseDragStart().x;
|
||||
int deltaY = current.y - controller.getMouseDragStart().y;
|
||||
int deltaX = current.x - listener.getMouseDragStart().x;
|
||||
int deltaY = current.y - listener.getMouseDragStart().y;
|
||||
|
||||
// Déplacement dans CameraController
|
||||
controller.updateViewOffset(deltaX, deltaY);
|
||||
listener.updateViewOffset(deltaX, deltaY);
|
||||
|
||||
// Met à jour la position de départ
|
||||
controller.setMouseDragStart(current);
|
||||
listener.setMouseDragStart(current);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent e) {
|
||||
if (SwingUtilities.isRightMouseButton(e)) {
|
||||
controller.resetMouseDragStart();
|
||||
listener.resetMouseDragStart();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,28 +1,28 @@
|
||||
package controller;
|
||||
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
public class MousePressHandler extends MouseAdapter {
|
||||
|
||||
private CameraController controller;
|
||||
private CameraControllerListener listener;
|
||||
|
||||
public MousePressHandler(CameraController controller, GameContext context) {
|
||||
this.controller = controller;
|
||||
public MousePressHandler(CameraControllerListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
if (SwingUtilities.isRightMouseButton(e)) {
|
||||
System.out.println("Clic droit détecté");
|
||||
controller.setMouseDragStart(e.getPoint());
|
||||
listener.setMouseDragStart(e.getPoint());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent e) {
|
||||
if (SwingUtilities.isRightMouseButton(e)) {
|
||||
controller.resetMouseDragStart();
|
||||
listener.resetMouseDragStart();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
7
src/main/java/controller/TilePlacer.java
Normal file
7
src/main/java/controller/TilePlacer.java
Normal file
@ -0,0 +1,7 @@
|
||||
package controller;
|
||||
|
||||
import java.awt.Point;
|
||||
|
||||
public interface TilePlacer {
|
||||
void placeTile(Point position);
|
||||
}
|
@ -22,9 +22,9 @@ public class MenuView extends JComponent {
|
||||
panelCoté.setPreferredSize(new Dimension(300, 0));
|
||||
|
||||
// Utilisation de getResource pour charger les images
|
||||
backgroundImage = new ImageIcon(getClass().getResource("/view/img/bg.png")).getImage();
|
||||
logo = new ImageIcon(getClass().getResource("/view/img/D.png"));
|
||||
quit = new ImageIcon(getClass().getResource("/view/img/quit.png"));
|
||||
backgroundImage = new ImageIcon(getClass().getResource("/java/view/img/bg.png")).getImage();
|
||||
logo = new ImageIcon(getClass().getResource("/java/view/img/D.png"));
|
||||
quit = new ImageIcon(getClass().getResource("/java/view/img/quit.png"));
|
||||
|
||||
// Redimensionnement des images
|
||||
Image quit1 = quit.getImage();
|
||||
|
Loading…
x
Reference in New Issue
Block a user