2013-12-18 21 views
0

再次openGL)我需要做纹理的拖动控制,不知道如何存储这个值。我有一点,图像纹理结构,但我需要一个纹理改变自己的位置,所以我需要改变glVertex2f上的mousePressed方法,按照我的理解存储纹理拖动控制

glLoadIdentity(); 
glEnable(GL_TEXTURE_2D); //enable 2D texturing 
if(number < 4){ 
    glBindTexture(GL_TEXTURE_2D, texture); 
} else { 
    glBindTexture(GL_TEXTURE_2D, texture2); 
} 

glBegin (GL_QUADS); 
glTexCoord2d(0.0,0.0); glVertex2f(x/window_width, y/window_height); 
glTexCoord2d(1.0,0.0); glVertex2f(x/window_width+0.2, y/window_height); 
glTexCoord2d(1.0,1.0); glVertex2f(x/window_width+0.2, y/window_height+0.2); 
glTexCoord2d(0.0,1.0); glVertex2f(x/window_width, y/window_height+0.2); 
glEnd(); 
glFlush(); 

我怎样才能将它们添加到载体中,然后改变立场?

回答

0

如果要拖动纹理,则需要更改glTextCoord2d值。 这种方式poligon保持固定,但您应用到它的纹理转移。

还检查纹理params将变形应用到您的纹理,以便它重复。

+0

谢谢,我了解如何改变位置,我需要知道如何用这个参数创建对象,以后我可以做出类似于 obj-> glVertex2f(0.1,0.2)e.t.c. – gronzzz

+1

@gronzzz:你的对象类有一个'putVertex'成员,可以用正确的参数调用'glVertex'。或者最好让它填充到一个数组中,你可以将它作为一个顶点数组传递给OpenGL。 glVertex及其朋友已经过时,并且已经从现代OpenGL中完全删除。 – datenwolf