2024-10-25 00:28:51 +02:00
|
|
|
package controller;
|
|
|
|
|
2024-10-25 22:22:11 +02:00
|
|
|
import javax.swing.JPanel;
|
|
|
|
import java.awt.Point;
|
|
|
|
|
2024-10-25 00:28:51 +02:00
|
|
|
|
|
|
|
public class CameraController {
|
|
|
|
|
2024-10-25 22:22:11 +02:00
|
|
|
private Point mouseDragStart = null;
|
2024-10-25 20:22:35 +02:00
|
|
|
private GameContext context;
|
2024-10-25 22:22:11 +02:00
|
|
|
private JPanel gridPanel;
|
2024-10-25 00:28:51 +02:00
|
|
|
|
|
|
|
public CameraController(JPanel gridPanel, GameContext context) {
|
|
|
|
this.gridPanel = gridPanel;
|
2024-10-25 20:22:35 +02:00
|
|
|
this.context = context;
|
2024-10-25 22:22:11 +02:00
|
|
|
setupMouseDragToMove(gridPanel); // Initialise les écouteurs pour gérer le déplacement
|
2024-10-25 00:28:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public void updateViewOffset(int deltaX, int deltaY) {
|
2024-10-25 22:22:11 +02:00
|
|
|
// Met à jour uniquement l'offset dans GameContext
|
|
|
|
context.updateOffset(deltaX, deltaY);
|
|
|
|
// Repeindre la grille après mise à jour
|
|
|
|
context.repaintGrid(gridPanel);
|
2024-10-25 00:28:51 +02:00
|
|
|
|
2024-10-25 22:22:11 +02:00
|
|
|
// Debug : Affiche l'offset actuel
|
|
|
|
System.out.println("Nouvel offset dans GameContext : " + context.getOffset());
|
|
|
|
}
|
2024-10-25 20:22:35 +02:00
|
|
|
|
2024-10-25 22:22:11 +02:00
|
|
|
private void setupMouseDragToMove(JPanel gridPanel) {
|
|
|
|
gridPanel.addMouseListener(new MousePressHandler(this, context));
|
|
|
|
gridPanel.addMouseMotionListener(new MouseDragHandler(this, context));
|
2024-10-25 00:28:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public void setMouseDragStart(Point point) {
|
|
|
|
this.mouseDragStart = point;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Point getMouseDragStart() {
|
|
|
|
return mouseDragStart;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void resetMouseDragStart() {
|
|
|
|
this.mouseDragStart = null;
|
|
|
|
}
|
|
|
|
|
2024-10-25 22:22:11 +02:00
|
|
|
public Point getViewOffset() {
|
|
|
|
return context.getOffset();
|
2024-10-25 00:28:51 +02:00
|
|
|
}
|
|
|
|
}
|