Faster piece painting

This commit is contained in:
Filip Znachor 2023-04-18 14:55:12 +02:00
parent 8186124030
commit 830d53f615

View file

@ -110,8 +110,8 @@ public class Chessboard extends JPanel {
boardScale = Math.min(this.getWidth(), this.getHeight())/ BOARD_WIDTH;
startX = cx-(BOARD_WIDTH /2.0*boardScale);
startY = cy-(BOARD_WIDTH /2.0*boardScale);
startX = cx-(BOARD_WIDTH/2.0*boardScale);
startY = cy-(BOARD_WIDTH/2.0*boardScale);
AffineTransform beforeBoard = g2.getTransform();
g2.translate(startX, startY);
@ -157,19 +157,21 @@ public class Chessboard extends JPanel {
AffineTransform beforePieces = g2.getTransform();
pieceScale = SQUARE_SIZE / 140.0;
for (IPiece[] pieces2: pieces) {
for (IPiece piece : pieces2) {
if(piece != null && piece != floating) {
double xOffset = 20*pieceScale + SQUARE_SIZE*piece.getX();
double yOffset = 20*pieceScale + SQUARE_SIZE*piece.getY();
double pieceOffset = 20*pieceScale;
for (int y = 0; y < pieces.length; y++) {
for (int x = 0; x < pieces[y].length; x++) {
if(pieces[y][x] != null && pieces[y][x] != floating) {
double xOffset = pieceOffset + SQUARE_SIZE*x;
double yOffset = pieceOffset + SQUARE_SIZE*y;
g2.translate(xOffset, yOffset);
g2.scale(pieceScale, pieceScale);
piece.paint(g2);
pieces[y][x].paint(g2);
g2.setTransform(beforePieces);
}
}
}
if(floating != null) {
g2.setTransform(beforeBoard);
g2.translate(floating.getOverrideX(), floating.getOverrideY());