使用以下代码时,为什么我的OpenGL ES视图不会更新?

时间:2010-12-11 05:19:17

标签: iphone objective-c opengl-es

我正在为iPhone编写一个OpenGL游戏,并且这个代码每秒被调用24次,意味着更新视图:

[gameWorld update];

glColor3f(1.0f, 0.85f, 0.35f);
glBegin(GL_QUADS); {
    glVertex3f(gameWorld.player.x, gameWorld.player.y, 0);
    glVertex3f(gameWorld.player.x+10, gameWorld.player.y, 0);
    glVertex3f(gameWorld.player.x+10, gameWorld.player.y+20, 0);
    glVertex3f(gameWorld.player.x, gameWorld.player.y+20, 0);
}
glEnd();

[gameWorld update]根据按下的键调用改变gameWorld.player.x所需的代码(这是有效的)。我的问题是,在glBegin()块之后,屏幕上绘制的黄色矩形不会移动。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

OpenGL ES 1.1不支持glBegin()/ glEnd()。

您可能需要查看this post,其中介绍了如何执行类似的操作。基本上,绘制三角形:

glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, triVertices);
glDrawArrays(GL_TRIANGLES, 0, 3);