2014-10-08 2 views
1

Я собираюсь сделать приключенческую игру в 2D с травой, деревьями и прочими вещами, если я смогу это сделать. Моя проблема заключается в том, что когда я использую glTexCoord2f, чтобы закрепить текстуру на квадроцикле, они отделяются друг от друга примерно на 25 пикселей. Предполагается, что эти квадратики соединяются вместе, как и любые 2D-игры.Почему мой квадрат текстуры неправильно расположен с помощью glTexCoord2f с использованием LWJGL?

Im загрузка их с SlickUtil и размером текстуры 100x100

Вот мой исходный код для рендеринга квадрациклов и InitGL

public static void Render(){ 
    example--; 
    GL11.glLoadIdentity(); 
    Color.white.bind(); 
    system.Game.ground.bind(); 
    GL11.glTranslatef(example, 0, 0); 
    //I used for loop for cloning quad at each side. 
    for(int x = 0; x <= width; x++){ 
     GL11.glBegin(GL11.GL_QUADS); 
     GL11.glTexCoord2f(0, 0); 
     GL11.glVertex2f(x * 100, 0); 
     GL11.glTexCoord2f(1, 0); 
     GL11.glVertex2f(x * 100 + 100, 0); 
     GL11.glTexCoord2f(1, 1); 
     GL11.glVertex2f(x * 100 + 100, 100); 
     GL11.glTexCoord2f(0, 1); 
     GL11.glVertex2f(x * 100, 100); 
     GL11.glEnd(); 
    } 
    GL11.glLoadIdentity(); 
} 

Heres моего InitGL код.

GL11.glEnable(GL11.GL_TEXTURE_2D);    
GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);   

GL11.glEnable(GL11.GL_BLEND); 
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 

GL11.glViewport(0,0,width,height); 
GL11.glMatrixMode(GL11.GL_MODELVIEW); 
GL11.glMatrixMode(GL11.GL_PROJECTION); 
GL11.glLoadIdentity(); 
GL11.glOrtho(0, width, height, 0, 1, -1); 
GL11.glMatrixMode(GL11.GL_MODELVIEW); 
+1

вы можете начать с того, что не используете конвейер с фиксированной функцией, но вместо этого используете шейдеры и VBOs. –

+3

Каков размер ваших текстур? Как вы их загружаете? Похоже, что это может быть распространенной проблемой, когда вы используете библиотеку, которая округляет размеры текстур до значений 2, в то время как фактические размеры текстур не равны 2. –

+0

Похоже, вы попытались включить скриншот в свой вопрос, но что-то перепуталось ... можете ли вы что-то сделать в '! [] [1]' в своем вопросе? Если вы ссылаетесь на скриншот, я могу включить его для вас. –

ответ

0

SlickUtil только читает текстуры с размерами, равными двум. Причина в том, что только с OpenGL 2.0 OpenGL мог читать текстуры с не-двумя измерениями. Попробуйте загрузить текстуру с размерами 128 на 128 пикселей. Затем отобразите его на 100 на 100 пикселей (как в вашем примере).

Смежные вопросы