有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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,它在后端模仿俄罗斯方块,但是颠倒了,因此块向上移动,而不是向下移动。我该如何把这个画倒过来,让这些碎片落下来而不是向上?正如你在我的代码中所看到的,我尝试了一个反向循环和一个常规循环,它们都产生了相同的自下而上的下降风格

Demo


共 (2) 个答案

  1. # 1 楼答案

    绘制片段的顺序只与片段在屏幕上的重叠方式有关。在这种情况下,他们没有。所以顺序不重要。重要的是你如何在其他代码中声明数据,当你改变位置时,你需要给它们加上Y,而不是减去Y。基本上所有的计算机图形都是+Y->;趴下

    显示迭代位置的代码,并告诉您将其更改为+是很简单的

  2. # 2 楼答案

    g2d。drawRect负责放置位置y * PIECE_SIZE专门用于y位置。你需要用MAX_y_value - (y * PIECE_SIZE)反转y位置