SKScene iPad高度宽度逆转

我正在尝试在一个只支持横向模式的iPad应用程序中用瓦片填充我的SKScene。 在场景中,我发现h&w是这样的:

int h = [UIScreen mainScreen].bounds.size.height; int w = [UIScreen mainScreen].bounds.size.width; 

不幸的是,返回的尺寸与他们所需要的相反。 在视图控制器或视图的内容中讨论这个问题有很多的话题,解决scheme似乎是在viewWillAppear而不是viewDidLoad中检测屏幕大小。 但是,这似乎并不是SKScenes的有效解决scheme。

有什么build议么?

尝试,而不是使用viewDidLoad并使用此

 - (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; SKView * skView = (SKView *)self.view; if (!skView.scene) { skView.showsFPS = YES; skView.showsNodeCount = YES; SKScene * scene = [MyScene sceneWithSize:skView.bounds.size]; scene.scaleMode = SKSceneScaleModeAspectFill; // Present the scene. [skView presentScene:scene]; } } 

在布局处理程序中初始化场景没有任何意义。 在布局处理程序中调整场景的大小 。 (就是这样)。

 @implementation SGOMyScene { SKScene *scene; } - (void)viewDidLoad { [super viewDidLoad]; SKView *skView = (SKView *)self.view; skView.showsFPS = YES; skView.showsNodeCount = YES; scene = [SGOMyScene sceneWithSize:skView.bounds.size]; scene.scaleMode = SKSceneScaleModeAspectFill; [skView presentScene:scene]; } - (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; SKView *skView = (SKView *)self.view; scene.size = skView.bounds.size; } 

你的场景应该实现- (void)didChangeSize:(CGSize)oldSize将所有东西移动到正确的位置。

万岁,现在你的游戏也处理设备旋转。