...挫折。我希望我的游戏只能在横向模式下运行。我已将相应的键/值添加到Info.plist文件中,以强制设备方向在启动时正确。
我现在正在尝试旋转OpenGL坐标空间以匹配设备的坐标空间。我正在尝试使用我找到的代码here,但它无效。我的测试用例在中心绘制了一个正方形,并且包含所有的代码,我看不出任何东西;如果我注释掉第二部分(仅设置GL_PROJECTION矩阵模式),则坐标系 看起来是正确的。但我也喜欢旋转。我有点不知道如何做到这一点,以及正确设置视图笔尖。提示,好吗?
此外,将来,我将使用另一个UIView子类交换EAGLView;这样做会有什么不同吗?
谢谢! 好色
答案 0 :(得分:2)
您正确设置了plist。 现在确保所有视图控制器都具有以下内容:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation==UIInterfaceOrientationLandscapeRight) ? YES : NO;
}
没有它的子视图可以搞砸了。
此外,如果您有一个UINavigationController或类似的东西,您需要将其子类化并实现shouldAutorotateToInterfaceOrientation,因为它本身就是愚蠢的,并且默认为纵向和破坏事物。
然后是viewdidload
- (void)viewDidLoad {
[super viewDidLoad];
CGRect rect = [[UIScreen mainScreen] bounds];
rect.size.height = 320;
rect.size.width = 480;
rect.origin.x = 0;
rect.origin.y = 0;
glView = [[EAGLView alloc] initWithFrame:rect pixelFormat:GL_RGB565_OES depthFormat:GL_DEPTH_COMPONENT16_OES preserveBackbuffer:NO];
[self.view addSubview: glView];
[glView addSubview: minimapView];
//etc...
}