Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何反向绘制数组 @覆盖 受保护的空心油漆组件(最终图形){ super.paintComponent(图形); 最终图形2d g2d=(图形2d)图形; 最终整数高度=getHeight(); 最终整数宽度=getWidth(); 最终int modX=宽度*工件尺寸; 最终int modY=宽度*工件尺寸; g2d.setRenderingHint(RenderingHints.KEY_抗锯齿, RenderingHints.VALUE_ANTIALIAS_ON); //拿分 /*如果(我的游戏状态){ 对于(int y=myBlockList.size()-1;y>0;y--){ 对于(int x=myBlockList.get(y).length-1;x>=0;x--){ setColor(getRandomColor()); if(myBlockList.get(y)[x]!=null){ g2d.drawRect(x*件号,y*件号,件号,件号); g2d.fillRect(x*件号,y*件号,件号,件号); } } } }*/ 如果(我的游戏状态){ 对于(int y=0;yDown_Java - Fatal编程技术网

Java 如何反向绘制数组 @覆盖 受保护的空心油漆组件(最终图形){ super.paintComponent(图形); 最终图形2d g2d=(图形2d)图形; 最终整数高度=getHeight(); 最终整数宽度=getWidth(); 最终int modX=宽度*工件尺寸; 最终int modY=宽度*工件尺寸; g2d.setRenderingHint(RenderingHints.KEY_抗锯齿, RenderingHints.VALUE_ANTIALIAS_ON); //拿分 /*如果(我的游戏状态){ 对于(int y=myBlockList.size()-1;y>0;y--){ 对于(int x=myBlockList.get(y).length-1;x>=0;x--){ setColor(getRandomColor()); if(myBlockList.get(y)[x]!=null){ g2d.drawRect(x*件号,y*件号,件号,件号); g2d.fillRect(x*件号,y*件号,件号,件号); } } } }*/ 如果(我的游戏状态){ 对于(int y=0;yDown

Java 如何反向绘制数组 @覆盖 受保护的空心油漆组件(最终图形){ super.paintComponent(图形); 最终图形2d g2d=(图形2d)图形; 最终整数高度=getHeight(); 最终整数宽度=getWidth(); 最终int modX=宽度*工件尺寸; 最终int modY=宽度*工件尺寸; g2d.setRenderingHint(RenderingHints.KEY_抗锯齿, RenderingHints.VALUE_ANTIALIAS_ON); //拿分 /*如果(我的游戏状态){ 对于(int y=myBlockList.size()-1;y>0;y--){ 对于(int x=myBlockList.get(y).length-1;x>=0;x--){ setColor(getRandomColor()); if(myBlockList.get(y)[x]!=null){ g2d.drawRect(x*件号,y*件号,件号,件号); g2d.fillRect(x*件号,y*件号,件号,件号); } } } }*/ 如果(我的游戏状态){ 对于(int y=0;yDown,java,Java,因此,我收到一个ArrayList,它在后端模拟俄罗斯方块,但倒置,因此块是向上移动而不是向下移动。我如何将其倒置绘制,以使碎片向下而不是向上?正如您在我的代码中看到的,我尝试了反向循环和常规循环,两者都产生相同的从下到上的fa样式林 绘制片段的顺序只影响片段在屏幕上的重叠方式。在这种情况下,它们并不重要。因此,顺序并不重要。重要的是如何在其他代码中声明数据,当您更改位置时,您需要向其添加Y,而不是减去Y。基本上,所有计算机图形都是+Y->Down 显示迭代位置的代码,并告诉您将其更改为a+,这

因此,我收到一个ArrayList,它在后端模拟俄罗斯方块,但倒置,因此块是向上移动而不是向下移动。我如何将其倒置绘制,以使碎片向下而不是向上?正如您在我的代码中看到的,我尝试了反向循环和常规循环,两者都产生相同的从下到上的fa样式林


绘制片段的顺序只影响片段在屏幕上的重叠方式。在这种情况下,它们并不重要。因此,顺序并不重要。重要的是如何在其他代码中声明数据,当您更改位置时,您需要向其添加Y,而不是减去Y。基本上,所有计算机图形都是+Y->Down


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

绘制片段的顺序只影响片段在屏幕上的重叠方式。在这种情况下,它们不会重叠。因此,顺序无关紧要。重要的是您在其他代码中如何声明数据以及何时更改位置在上,您需要向它们添加Y,而不是减去Y。基本上,所有计算机图形都是+Y->Down


显示迭代位置的代码,并告诉您将-更改为+。

g2d.drawRect负责放置位置。
y*PIECE\u SIZE
专门用于y位置。您需要使用
MAX\u y\u value-(y*PIECE\u SIZE)反转y位置

g2d.drawRect负责放置位置。
y*工件尺寸
专门用于y位置。您需要使用
最大y值(y*工件尺寸)反转y位置

标准化点数据,从一中减去标准化点数据,乘以将容纳碎片的区域的高度,从屏幕顶部添加缓冲区“标准化点数据”是什么意思?如果你不介意,你发布的代码看起来与移动块无关。它只在屏幕上绘制它们。你的两个循环版本改变了绘制块的顺序,但块的位置似乎隐含在显示列表中的位置。你的示例没有显示将块放入列表的代码。若要规范化点,请找到最大y值,并将所有y值除以最大值,使y值的范围为0-1。然后通过从1中减去每个y值来反转y值。这将反转它们“下落”的方向。然后将每个y值乘以块在OK中可以移动的区域的高度,因此我从一个可观察的后端类接收ArrayList,数组列表包含俄罗斯方块板,在它们的点中包含适当的块,包括当它们移动时,ArrayList填满了块。所以我正在做的是迭代ArrayListst,查看哪些块已填充,然后尝试绘制这些块。不幸的是,arraylist的顺序与y相反。规范化点数据,从一个点数据中减去规范化点数据,乘以容纳块的区域的高度,从屏幕顶部添加缓冲区“规范化点数据”是什么意思?如果你不介意,你发布的代码看起来与移动块无关。它只在屏幕上绘制它们。你的两个循环版本改变了绘制块的顺序,但块的位置似乎隐含在显示列表中的位置。你的示例没有显示将块放入列表的代码。若要规范化点,请找到最大y值,并将所有y值除以最大值,使y值的范围为0-1。然后通过从1中减去每个y值来反转y值。这将反转它们“下落”的方向。然后将每个y值乘以块在OK中可以移动的区域的高度,因此我从一个可观察的后端类接收ArrayList,数组列表包含俄罗斯方块板,在它们的点中包含适当的块,包括当它们移动时,ArrayList填满了块。所以我正在做的是迭代ArrayListst,查看哪些块已填充,然后尝试绘制这些块。不幸的是,arraylist的y顺序相反。最大y值到底是什么?我的网格的高度?@Jacob是的。尽管这取决于
 @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);
                    }
                }
            }
        }