Faster piece painting
This commit is contained in:
parent
8186124030
commit
830d53f615
|
@ -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());
|
||||
|
|
Loading…
Reference in a new issue