Java で LWJGL と OpenGl を使用して単純な 2D ゲームを作成していますが、複数のクワッドをレンダリングできないようです。
メインクラスに配列Squares
リストがあり、リストに複数の Square がある場合、リストの最後の 1 つだけをレンダリングし、他のものはレンダリングできません (Square の名前をデバッグして印刷しました。それらを適切にレンダリングしますが、何らかの理由で最後のもの以外はレンダリングしないことにしました)。したがって、私が考えることができる唯一のことは、Square
クラスDraw
メソッド (クワッドをレンダリングするためだけにそのメソッドを使用するため) または OpenGL 設定コードに問題があるということです。
これと lwjgl の wiki ページを主にフォローしているので、私のコードはこのビデオの内容と非常によく似ています: http://www.youtube.com/watch?v=EjbOjio_pC4
スクエアクラス:
package dasting;
import org.lwjgl.*; //lwjgl engine
import org.lwjgl.opengl.*; //opengl
import static org.lwjgl.opengl.GL11.*; //Dunno yet, youtube said so
import org.lwjgl.LWJGLException; //Allows tries and catches with exception handling for LWJGL (IMPORTANT SHIT)
import java.util.Random;
public class Square {
private int x1, x2, y1, y2, roomHeight, roomWidth;
//constructor takes the position values and width and height of room for boundary checks
Square(int X1, int X2, int Y2, int Y1, int rmWidth, int rmHeight) {
x1 = X1; //initialising the point values
x2 = X2;
y2 = Y2;
y1 = Y1;
roomHeight = rmHeight;
roomWidth = rmWidth;
}
public void draw() { //draw method
//Rendering random stuff example code. Also moves the square
glClear(GL_COLOR_BUFFER_BIT);
//Render quad
glBegin(GL_QUADS);
glVertex2i(x1, y1);
glVertex2i(x2, y1);
glVertex2i(x2, y2);
glVertex2i(x1, y2);
glEnd();
}
}
そして、これが私のメインクラスで問題があると思われるopenGl設定です。
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, roomWidth, roomHeight, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);