我有一个横向运行的 iOS 应用程序(总是),并使用 OpenGL 进行绘图。我的draw方法中有这段代码:
GLfloat width = self.frame.size.width; // 480
GLfloat height = self.frame.size.height; // 320
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-width / 2, width / 2, -height / 2, height / 2, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(160.0f, 240.0f, 0.0f);
glRotatef(-90.0f, 0.0f, 0.0f, 1.0f);
glScalef(1.0f, -1.0f, 1.0f);
glMatrixMode(GL_PROJECTION);
glTranslatef(self.player.x, self.player.y, 0.0f);
其中self.player.x
和self.player.y
是GLfloat
变量,范围从-3.0f
到3.0f
。
但是,我看到的只是一个蓝十字:
我glOrthof
用来让 OpenGL 使用正确的纵横比。当我评论glOrthof
调用时,我得到了这个结果(浅蓝色线应该形成正方形,而不是矩形):
我尝试了一切,从交换宽度和高度,更改glOrthof
调用的参数,但没有任何帮助。有人可以帮助我,或者解释我做错了什么吗?提前致谢。:)