如果我能做到这些,我将用草,树和其他东西制作2D冒险游戏。我的问题是,当我使用glTexCoord2f将纹理钳位到四边形时,它们会彼此分开大约25个像素。这些四边形应该像任何2D游戏一样连接在一起。
我用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();
}
继承我的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);
答案 0 :(得分:0)
SlickUtil仅读取尺寸为2的纹理。原因是,只有自OpenGL 2.0以来,OpenGL才能读取非二维幂的纹理。尝试加载尺寸为128 x 128像素的纹理。然后用100 x 100像素显示它(就像你在例子中所做的那样)。