start changes

This commit is contained in:
Romain MURPHY 2025-05-13 14:47:09 +02:00
parent 51cb78c256
commit 6a1f26f099
1 changed files with 34 additions and 33 deletions

View File

@ -26,7 +26,7 @@ public class JPanelChessBoard extends JPanel {
private int PIECE_WIDTH = 200; //in spritesheet private int PIECE_WIDTH = 200; //in spritesheet
private int PIECE_HEIGHT = 200; //in spritesheet private int PIECE_HEIGHT = 200; //in spritesheet
private int MARGIN = 0; private int MARGIN = 0;
private boolean pieceSelectorMode; private boolean pieceSelectorMode;
private boolean selectedPieceIsWhite; private boolean selectedPieceIsWhite;
private PieceType selectedPieceType; private PieceType selectedPieceType;
@ -41,9 +41,9 @@ public class JPanelChessBoard extends JPanel {
selectedPieceIsWhite = true; selectedPieceIsWhite = true;
selectedPieceType = PieceType.Pawn; selectedPieceType = PieceType.Pawn;
pieceSelectorMode = false; pieceSelectorMode = false;
backgroundImage = new ImageIcon(getClass().getResource("image_OOP.png")).getImage(); backgroundImage = new ImageIcon(getClass().getResource("image_OOP.png")).getImage();
try { try {
spriteSheet = ImageIO.read(new File("pieces/newPieces.png")); spriteSheet = ImageIO.read(new File("pieces/newPieces.png"));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
@ -60,23 +60,24 @@ public class JPanelChessBoard extends JPanel {
pieceSelectorMode = false; pieceSelectorMode = false;
} else { } else {
if(myGame == null) { if(myGame == null) {
interfaceGlobal.instantiateSimu(); // interfaceGlobal.instantiateSimu();
} }
int x = (me.getX()*myGame.getWidth())/getWidth(); else {
int y = (me.getY()*myGame.getHeight())/getHeight(); int x = (me.getX()*myGame.getWidth())/getWidth();
if(pieceAdderMode) { int y = (me.getY()*myGame.getHeight())/getHeight();
//TODO if(pieceAdderMode) {
myGame.setPiece(x, y, selectedPieceType, selectedPieceIsWhite); myGame.setPiece(x, y, selectedPieceType, selectedPieceIsWhite);
pieceAdderMode = false; pieceAdderMode = false;
} else { } else {
myGame.clickCoords(x,y); myGame.clickCoords(x,y);
}
} }
} }
repaint(); repaint();
} }
}); });
} }
public void setGame(Game simu) { public void setGame(Game simu) {
myGame = simu; myGame = simu;
@ -86,7 +87,7 @@ public class JPanelChessBoard extends JPanel {
protected void paintComponent(Graphics g) { protected void paintComponent(Graphics g) {
super.paintComponent(g); super.paintComponent(g);
g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this); g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this);
// this.setBackground(new Color(238,236,208)); // this.setBackground(new Color(238,236,208));
if(pieceSelectorMode) { if(pieceSelectorMode) {
g.drawImage( g.drawImage(
spriteSheet, spriteSheet,
@ -101,7 +102,7 @@ public class JPanelChessBoard extends JPanel {
if (myGame != null) { if (myGame != null) {
// Draw Interface from state of simulator // Draw Interface from state of simulator
g.setColor(new Color(238, 236, 208)); // Your default color g.setColor(new Color(238, 236, 208)); // Your default color
g.fillRect(0, 0, getWidth()+1, getHeight()+1); g.fillRect(0, 0, getWidth()+1, getHeight()+1);
repaint(); repaint();
float cellWidth = cellWidth(); float cellWidth = cellWidth();
float cellHeight = cellHeight(); float cellHeight = cellHeight();
@ -132,10 +133,10 @@ public class JPanelChessBoard extends JPanel {
if(isHighlight || isSelect || isCheck) { if(isHighlight || isSelect || isCheck) {
g.setColor(new Color(115, 149, 82)); g.setColor(new Color(115, 149, 82));
} }
} }
} }
g.setColor(Color.gray); g.setColor(Color.gray);
for(int x=0; x<myGame.getWidth();x++) { for(int x=0; x<myGame.getWidth();x++) {
int graphX = Math.round(x*cellWidth); int graphX = Math.round(x*cellWidth);
@ -145,26 +146,26 @@ public class JPanelChessBoard extends JPanel {
int graphY = Math.round(y*cellHeight); int graphY = Math.round(y*cellHeight);
g.drawLine(0, graphY, this.getWidth(), graphY); g.drawLine(0, graphY, this.getWidth(), graphY);
} }
for (Piece piece : myGame.getPieces()) { for (Piece piece : myGame.getPieces()) {
drawPiece(g,piece); drawPiece(g,piece);
} }
g.setColor(Color.BLACK); g.setColor(Color.BLACK);
for (int x = 0; x < myGame.getWidth(); x++) {
char letter = (char) ('a' + x);
int xLetter = Math.round(x * cellWidth() + cellWidth() / 2) - 4;
int yLetter = getHeight() - 5;
g.drawString(String.valueOf(letter), xLetter, yLetter);
}
for (int y = 0; y < myGame.getHeight(); y++) { for (int x = 0; x < myGame.getWidth(); x++) {
int number = myGame.getHeight() - y; char letter = (char) ('a' + x);
int xNumber = 5; int xLetter = Math.round(x * cellWidth() + cellWidth() / 2) - 4;
int yNumber = Math.round(y * cellHeight() + cellHeight() / 2) + 5; int yLetter = getHeight() - 5;
g.drawString(String.valueOf(number), xNumber, yNumber); g.drawString(String.valueOf(letter), xLetter, yLetter);
} }
for (int y = 0; y < myGame.getHeight(); y++) {
int number = myGame.getHeight() - y;
int xNumber = 5;
int yNumber = Math.round(y * cellHeight() + cellHeight() / 2) + 5;
g.drawString(String.valueOf(number), xNumber, yNumber);
}
} }
} }
@ -187,11 +188,11 @@ public class JPanelChessBoard extends JPanel {
Math.round(cellHeight())-2*MARGIN, 0 Math.round(cellHeight())-2*MARGIN, 0
); );
} }
private int spriteSheetPositionOfPieceType(PieceType type) { private int spriteSheetPositionOfPieceType(PieceType type) {
return 5-type.ordinal(); return 5-type.ordinal();
} }
private float cellWidth() { private float cellWidth() {
return (float) this.getWidth()/ (float)myGame.getWidth(); return (float) this.getWidth()/ (float)myGame.getWidth();
} }