SpriteKit 如何支持多种屏幕尺寸?
Posted
技术标签:
【中文标题】SpriteKit 如何支持多种屏幕尺寸?【英文标题】:How to support multiple screen sizes in SpriteKit? 【发布时间】:2015-08-20 17:16:41 【问题描述】:我想制作支持所有ios设备的通用游戏,除了制作项目如何使我的游戏支持所有屏幕尺寸之外,还有一种方法可以通过代码检测屏幕尺寸并根据尺寸,每个设备的图形分辨率应该是多少?
【问题讨论】:
这个问题已经被问过很多次了。 我没有找到我想要的 那么为了清楚起见,您应该在问题中添加更多详细信息,说明您到底在寻找什么。 【参考方案1】:使用此代码确定屏幕的宽度和高度。您还可以找出正在使用的设备。
struct ScreenSize
static let SCREEN_WIDTH = UIScreen.mainScreen().bounds.size.width
static let SCREEN_HEIGHT = UIScreen.mainScreen().bounds.size.height
static let SCREEN_MAX_LENGTH = max(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
static let SCREEN_MIN_LENGTH = min(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
struct DeviceType
static let IS_IPHONE_4_OR_LESS = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH < 568.0
static let IS_IPHONE_5 = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 568.0
static let IS_IPHONE_6 = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 667.0
static let IS_IPHONE_6P = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 736.0
static let IS_IPAD = UIDevice.currentDevice().userInterfaceIdiom == .Pad && ScreenSize.SCREEN_MAX_LENGTH == 1024.0
您可以println()
调试器中的值。
【讨论】:
【参考方案2】:嗯,GameScene 应该从SKScene
继承,你可以分别通过self.frame.size
、self.frame.width
和self.frame.height
来获取它的大小、宽度和高度。
This 链接也可能对您有所帮助。
【讨论】:
以上是关于SpriteKit 如何支持多种屏幕尺寸?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 的 UILabel/UITextView 中处理多种屏幕尺寸的中文自动换行?