java如何反向绘制数组
@Override
protected void paintComponent(final Graphics theGraphics) {
super.paintComponent(theGraphics);
final Graphics2D g2d = (Graphics2D) theGraphics;
final int height = getHeight();
final int width = getWidth();
final int modX = width * PIECE_SIZE;
final int modY = width * PIECE_SIZE;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
//Get points for pieces
/*if (myGameStatus) {
for (int y = myBlockList.size() - 1; y > 0; y--) {
for (int x = myBlockList.get(y).length - 1; x >= 0; x--) {
g2d.setColor(getRandomColor());
if (myBlockList.get(y)[x] != null) {
g2d.drawRect(x * PIECE_SIZE, y * PIECE_SIZE, PIECE_SIZE, PIECE_SIZE);
g2d.fillRect(x * PIECE_SIZE, y * PIECE_SIZE, PIECE_SIZE, PIECE_SIZE);
}
}
}
}*/
if (myGameStatus) {
for (int y = 0; y < myBlockList.size(); y++) {
for (int x = 0; x < myBlockList.get(y).length; x++) {
g2d.setColor(getRandomColor());
if (myBlockList.get(y)[x] != null) {
g2d.drawRect(x * PIECE_SIZE, y * PIECE_SIZE, PIECE_SIZE, PIECE_SIZE);
g2d.fillRect(x * PIECE_SIZE, y * PIECE_SIZE, PIECE_SIZE, PIECE_SIZE);
}
}
}
}
所以我收到了一个ArrayList,它在后端模仿俄罗斯方块,但是颠倒了,因此块向上移动,而不是向下移动。我该如何把这个画倒过来,让这些碎片落下来而不是向上?正如你在我的代码中所看到的,我尝试了一个反向循环和一个常规循环,它们都产生了相同的自下而上的下降风格
# 1 楼答案
绘制片段的顺序只与片段在屏幕上的重叠方式有关。在这种情况下,他们没有。所以顺序不重要。重要的是你如何在其他代码中声明数据,当你改变位置时,你需要给它们加上Y,而不是减去Y。基本上所有的计算机图形都是+Y->;趴下
显示迭代位置的代码,并告诉您将其更改为+是很简单的
# 2 楼答案
g2d。drawRect负责放置位置
y * PIECE_SIZE
专门用于y位置。你需要用MAX_y_value - (y * PIECE_SIZE)
反转y位置