1

这适用于 2D 游戏,因此只有 x 和 y 轴。游戏在 iPhone 上处于横向模式。我希望能够设置渲染纹理的屏幕 x 和 y 坐标。

4

1 回答 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 回答