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
将所有东西移动到正确的位置。
万岁,现在你的游戏也处理设备旋转。