Bre*_*uro 1 xcode sprite-kit swift
我对如何正确调整基于风景的lans背景图像的大小感到完全困惑。截至目前,我正在执行操作,GameScene(size: self.frame.size)并打印出了屏幕的大小,因此我知道可以使用什么大小来制作背景,结果我的背景应该是1024x768,但看起来好像不是横向尺寸?因此,我将背景设为1024x768,但是当其横向时,整个图像都无法放入我的iphone,因为iphone的横向尺寸为1024x768。如何制作与iPhone尺寸为1:1的背景?我能想到的唯一方法是,如果我设置了,GameScene(size: CGPoint(x: 1334, y: 750)) 但会不会为其他任何设备弄乱呢?解决此问题的最佳方法是什么?我有一位艺术家会为我做背景,但我不知道该给他什么尺寸。
处理Sprite Kit的场景时,请不要将注意力集中在屏幕尺寸上,因为屏幕尺寸不再是一个因素(现在这不是100%的绝对事实,这是一个普遍适用的规则)
而是将您的SKScene视为虚拟屏幕。SKScene的大小是SKScene的“分辨率”,操作系统将在后台工作,以找出如何将1个虚拟像素(从这里开始我们称为“点”)转换为屏幕像素(从此处开始)以像素为单位)
现在只有一种特殊情况,即操作系统将更改分辨率(场景大小)以匹配屏幕,这就是.resizeFill 另外三种情况将永远不会改变您的分辨率。
.aspectFill并.aspectFit确保您的点到像素的转换保持不变,宽度和高度相等(例如1个点可以等于4x4像素),唯一的区别是.aspectFill将扩大以填充整个屏幕,这意味着多余的点将在本机屏幕范围之外进行渲染[因此(0,0)可能位于最左边像素的左边20个像素,因此不可见] ,. aspectFit会一直填充到屏幕边界为止,并留下黑条填充未使用的像素。
现在.fill不保持相同的宽度和高度点对像素比率,并且对于4:3的16:9屏幕,您会注意到您的点对像素将为5:4,因为16:9屏幕比4:3宽25%。这可以使您发胖。
因此,在处理游戏时,您需要找出所需的效果。如果将场景大小设置为1024x768,则所有非视网膜iPad的点对点比率均为1:1,其中视网膜的点对点比率为2:1。对于iphone 5,您到每个点的像素大约为1.14像素(iphone为1168,场景为1024,所以您执行1168/1024),那么768像素将损失25%,因为ipad的高度要高25%而不是风景中的iPhone。这意味着将仅显示576个点,其余显示在不可见的屏幕空间中。
基本上,因为iPad和iPhone都使用2种不同的宽高比,所以您永远无法在iPad和iPhone上同时使用通用应用程序获得1:1。您将必须拥有两套不同的资产,或者拥有一些不会改变游戏体验的创造性自由。这完全取决于游戏,不幸的是,直到他们对您的游戏有所了解之后,没人能够回答它。