2014-03-25 75 views
3

我注意到我以前没有的问题 - 在iPhone 5和相关设备上,我的游戏在顶部和底部显示黑色区域。如何根据Sprite Kit中的设备更改屏幕大小?

我使用它的标准代码,它显示即使在大型设备上,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的尺寸正确。

编辑2:改变场景大小不增加其高度。我尝试手动设置为320,568,无济于事。

EDIT3:它在默认的Xcode项目上显示相同的黑色条纹。这里有点不对劲。

下面是截图:

enter image description here

+0

这是SKView创建在故事板或笔尖吗?可能是布局约束问题。 – dokkaebi

+0

它来自默认项目,它是320x568那里,因为它是根视图,所以没有限制。那里没有别的。 – Dvole

+1

目标是否包含强制的[email protected]文件以启用宽屏模式? – LearnCocos2D

回答

5

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

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是规模在这里。

5

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

我通过选择'Project' - >'App Icons and Launch Images' - >'Launch Image source'解决,然后让Xcode生成文件。也可以从旧项目中复制该文件。 (在Xcode 5.1.1或之前的项目上制作的项目)。

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

相关问题