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,您可以轻松地面对这个问题,设置Scene
的scaleMode
属性。
你可以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