Это большая проблема, с которой я столкнулся.LWJGL glTranslate делает странные вещи
Я пытаюсь отобразить несколько фрагментов с помощью glTranslate, но когда я вызываю свою функцию рисования с координатами x, y, фрагменты чередуются странно (я не хочу пробелов).
Вот что происходит.
вот мой код:
Draw:
public void draw(float Xa, float Ya) {
GL11.glTranslatef(Xa, Ya, 0);
if(hasTexture) {
Texture.bind();
GL11.glBegin(GL11.GL_QUADS);
GL11.glColor3f(0.5f, 0.5f, 1);
GL11.glTexCoord2f(0, 0);
GL11.glVertex2f(0, 0);
GL11.glTexCoord2f(0, 1);
GL11.glVertex2f(0, S);
GL11.glTexCoord2f(1, 1);
GL11.glVertex2f(S, S);
GL11.glTexCoord2f(1, 0);
GL11.glVertex2f(S, 0);
GL11.glEnd();
}
и моя визуализация код:
public void a() throws IOException {
GL11.glTranslatef(0, 0, -10);
int x = 0;
while (x < World.BLOCKS_WIDTH - 1) {
int y = 0;
while (y < World.BLOCKS_HEIGHT - 1) {
blocks.b[data.blocks[x][y]].draw(x, y);
y++;
}
x++;
}
нет ошибок (кроме видимых из них)
спасибо за это. что именно это делает? – teenHack42
все функции перевода opengl - это действительно матричные вычисления. OpenGL поддерживает стек матриц трансакций, а ваши операции преобразования применяются к матрице в верхней части этого стека. glPushMatrix нажимает копию самой верхней матрицы на стек, glPopMatrix удаляет ее. Вы можете думать об этом как об отмене механизма. –