Java 如何绘制列表中包含的多个GLQuad?
我做了一个小lwjgl程序,在这个程序中,我可以通过按下一个按钮来创建框。但是,我似乎无法在for循环中绘制多个四边形 下面是我的代码:我有一个box类,这样我可以处理许多boxJava 如何绘制列表中包含的多个GLQuad?,java,opengl,lwjgl,Java,Opengl,Lwjgl,我做了一个小lwjgl程序,在这个程序中,我可以通过按下一个按钮来创建框。但是,我似乎无法在for循环中绘制多个四边形 下面是我的代码:我有一个box类,这样我可以处理许多box package LWJGL_Learn; import java.util.Random; import static org.lwjgl.opengl.GL11.*; import org.lwjgl.opengl.*; import org.lwjgl.*; public class Box { s
package LWJGL_Learn;
import java.util.Random;
import static org.lwjgl.opengl.GL11.*;
import org.lwjgl.opengl.*;
import org.lwjgl.*;
public class Box {
static int xPos, yPos, boxWide, boxHigh;
public Box(int width, int height) {
Random ran = new Random();
xPos = ran.nextInt(width);
yPos = ran.nextInt(height);
boxWide = ran.nextInt(40)+20;
boxHigh = ran.nextInt(40)+20;
}
public void draw() {
glVertex2f(xPos, yPos);
glVertex2f(xPos + boxWide, yPos);
glVertex2f(xPos + boxWide, yPos + boxHigh);
glVertex2f(xPos, yPos + boxHigh);
}
}
然后,在我的主文件中,我有一个LinkedList,它存储我的box类,并以此初始化
static LinkedList<Box> boxes = new LinkedList<Box>();
静态链接列表框=新建链接列表();
实际呈现它的代码如下所示:
glBegin(GL11.GL_QUADS);
for (int x = 0; x < boxes.size(); x++) {
boxes.get(x).draw();
}
glEnd();
glBegin(GL11.glu-QUADS);
对于(int x=0;x
此代码的问题在于,它似乎只绘制最近添加到列表中的框。我不太清楚这是为什么,但当我在执行结束时添加代码以打印框列表时,每次都会出现一个大小正确的列表。我假设这意味着在for循环中迭代每个框,这意味着在绘制下一个on之前,在代码中的某个地方上一个框将从屏幕上清除
我想。你们能纠正我的代码并向我解释为什么openGL会这样做吗
如果需要,我可以发布完整的代码。不是GL只渲染一个四元组,而是您的代码只定义一个四元组,然后渲染其“n”个副本 这:
将长方体参数声明为静态-这意味着它们由长方体的所有实例共享。oh。我的印象是静态字段仅由。。。不要介意。谢谢,你终于澄清了我对java的一个巨大误解!
static int xPos, yPos, boxWide, boxHigh;