我正在快速制作SpriteKit的第一个场景。我为尺寸为640x1136的4英寸iPhone创建了一个背景图像。我将图像作为精灵放置在屏幕中央,但图像不是全屏,缺少边缘。
接下来,我尝试在app中调整图片大小。当我image.size.height = self.size.height
时,高度在整个iPhone屏幕上正确调整大小。
但是当我用宽度image.size.width = self.size.width
做同样的事情时,图片的宽度非常明显。
我打印了self.size
的尺寸,结果我的iPhone 5s的尺寸是1024,768。这完全是胡说八道,因为屏幕不能比iPhone的高度宽。该应用程序是通用的,但唯一的方向设置为纵向。
编辑:这是我用来将图像放在屏幕上的代码
class GameScene: SKScene
{
let menuImage = SKSpriteNode(imageNamed: "menuImage")
override func didMoveToView(view: SKView)
{
/* Setup your scene here */
menuImage.anchorPoint = CGPointMake(0.5, 0.5)
menuImage.size.height = self.size.height
menuImage.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
self.addChild(menuImage)
}
答案 0 :(得分:9)
您需要在gameViewController文件中scene.size = skView.bounds.size
之前添加skView.presentScene(scene)
答案 1 :(得分:2)
这对我来说是有效的,可以将背景图像拉伸到适合Swift 5的整个屏幕。
background.size = CGSize (width: frame.maxX, height: frame.maxY)