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

Posted

技术标签:

【中文标题】Sprite Kit 场景编辑器 GameScene.sks 场景宽度和高度【英文标题】:Sprite Kit Scene Editor GameScene.sks scene width and height 【发布时间】:2015-11-28 05:31:21 【问题描述】:

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

如果我将像素值设置为 iphone 6 的像素值,游戏对于 ipad 和 iphone 6+ 来说会不会太小?为什么没有适合设备屏幕的选项?我应该怎么做才能避免这种情况?

【问题讨论】:

【参考方案1】:

像素密度

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

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

1 点 = 1x1 像素: iPad 2、iPad mini 1 点 = 2x2 像素: 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 点 = 3x3 像素: iPhone 6 Plus、iPhone 6s Plus

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

屏幕尺寸

iOS 9 支持的 iPhone/iPad 上有多种屏幕尺寸可供选择。

使用 SpriteKit,设置 ScenescaleMode 属性可以轻松解决这个问题。

您可以在 4 个选项中进行选择:

填充:缩放 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

【讨论】:

以上是关于Sprite Kit 场景编辑器 GameScene.sks 场景宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章

Sprite Kit 场景未呈现

使用 Swift 在 sprite kit 中的多个场景中重用相同的 sprite 节点

如何在场景中放置场景 - Sprite Kit

Sprite Kit:如何在运行场景之上添加场景

在 Sprite Kit 场景中隐藏 iAd

如何在 Sprite Kit 中初始化所有场景?