Sprite Kit场景编辑器GameScene.sks场景的宽度和高度

我正在使用spritekit场景生成器来构build我的场景(在xcode 7 ios9中创build项目时也称为GameScene.sks文件)。 在设置屏幕高度和宽度时,SpriteKit只使用像素值。 我的问题是这样的:

如果我将像素值设置为iPhone 6的像素值,对于iPad和iPhone 6 +游戏是否会太小? 为什么没有select适合设备屏幕? 我该怎么做才能避免这种情况?

像素密度

首先,场景的大小在“ Points不是Pixels ”中定义。

让我们来看看支持iOS 9的设备如何处理这个问题:

  • 1分= 1×1像素: iPad 2,iPad mini
  • 1点= 2×2像素: iPhone 4s,iPhone 5,iPhone 5c,iPhone 5s,iPhone 6,iPhone 6s,iPad mini 2,iPad mini 3,iPad mini 4,iPad 3,iPad 4,iPad Air,iPad Air 2,iPad Pro,iPod touch 5,iPod touch 6
  • 1点= 3×3像素: iPhone 6 Plus,iPhone 6s Plus

这使您可以指定自动转换为特定设备的像素密度的大小。

屏幕尺寸

在iOS 9支持的iPhone / iPad上有几种可用的屏幕尺寸。

使用SpriteKit,您可以轻松地面对这个问题,设置ScenescaleMode属性。

你可以select4个选项:

  • 填充:缩放SKScene以填充整个SKView。
  • AspectFill:缩放SKScene以填充SKView,同时保留场景的高宽比。 如果视图具有不同的纵横比,则可能会发生裁剪。
  • AspectFit:缩放SKScene以适应SKView,同时保持场景的高宽比。 如果视图具有不同的纵横比,则可能会发生一些信箱操作。
  • ResizeFill:将SKScene的实际大小修改为与SKView完全匹配。

你可能想要设置AspectFill但这取决于你的游戏。

要设置属性打开GameViewController.swift (或.m如果您使用Objective-C),在viewDidLoad你会发现这一行。 只要改变它来满足你的偏好。

 /* Set the scale mode to scale to fit the window */ gameScene.scaleMode = .AspectFill