这适用于 2D 游戏,因此只有 x 和 y 轴。游戏在 iPhone 上处于横向模式。我希望能够设置渲染纹理的屏幕 x 和 y 坐标。
Dimitris
问问题
6320 次
1 回答
7
如果你在做一个 2D 游戏,你可以设置你的投影和模型视图矩阵,这样你根本不需要转换:
// This goes in your init code somewhere
// Set up 480x320 orthographic projection
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-240.0f, 240.0f, -160.0f, 160.0f, -1.0f, 1.0f);
// Rotate into landscape mode
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(-90.0f, 0.0f, 1.0f, 0.0f);
这使得世界坐标 (-240, -160) 映射到屏幕的左上角(横向模式下的左下角), (240, 160) 映射到右下角(横向模式下的右上角)等。由于 iPhone 的屏幕是 480x320,因此您不需要在世界坐标和屏幕坐标之间转换,并使用这样设置的矩阵。
当然,如果您希望能够移动相机,那么您需要根据相机的位置进行偏移。
于 2009-03-04T17:09:48.420 回答