如何根据Sprite Kit中的设备更改屏幕尺寸?

时间:2014-03-25 18:32:03

标签: ios sprite-kit

我注意到之前没有的问题 - 在iPhone 5和相关设备上,我的游戏在顶部和底部显示黑色区域。

我使用标准代码,它表明skView.bounds.size即使在大型设备上也是320x480。

- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];

    SKView * skView = (SKView *)self.view;
    skView.showsFPS = YES;
    skView.showsNodeCount = YES;
    //skView.showsPhysics = YES;

    if (!skView.scene) {
        NSLog(@"size: %@", NSStringFromCGSize(self.view.frame.size));
        SKScene * scene = [MainMenuScene sceneWithSize:skView.bounds.size]; //[MyScene sceneWithSize:skView.bounds.size];
        scene.scaleMode = SKSceneScaleModeAspectFill;
        [skView presentScene:scene];
    }
}

编辑: 它正确地确定了iPad尺寸。

EDIT2:改变场景大小不会增加其高度。我尝试手动设置为320,568无效。

EDIT3:它在默认的Xcode项目中显示相同的黑色条纹。这里出了点问题。

以下是截图:

enter image description here

3 个答案:

答案 0 :(得分:5)

不知何故,Xcode没有为项目提供默认启动图像。在我添加了启动图像后,它们全都开始工作了。

答案 1 :(得分:5)

https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS8.html中,文档说“要让系统知道您的应用支持iPhone 6屏幕尺寸,请在应用套装中添加故事板启动屏幕文件。在运行时,系统会查找故事板启动屏幕文件。如果存在此类文件,系统会假定您的应用程序明确支持iPhone 6和6 Plus,并以全屏模式运行。如果没有这样的图像,系统会报告较小的屏幕尺寸(320×480点或320×568点),以便您的应用程序的基于屏幕的计算继续正确。然后缩放内容以适应更大的屏幕。'。

我通过选择'项目' - >'应用图标和启动图像' - >'启动图像来源'然后让Xcode生成文件。也可以从旧项目中复制此文件。 (在Xcode 5.1.1或之前的项目上制作的项目。)

在xCode 6中为iOS 8+创建项目,然后尝试在iOS 7或更低版​​本上执行应用程序时,也会发生这种情况。

答案 2 :(得分:0)

要更改场景的视图大小,您可以执行此操作

   SKView * skView = (SKView *)self.view;
   CGSize viewSize = self.view.bounds.size;
   viewSize.height *= 2;
   viewSize.width *= 2;
   SKScene * scene = [MainMenuScene sceneWithSize:viewSize];
   scene.scaleMode = SKSceneScaleModeAspectFill;

场景viewSize将在这里缩放2.