斯威夫特& SpriteKit:全屏图像

时间:2014-08-27 13:02:31

标签: ios swift resize sprite-kit

我正在快速制作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)
    }

2 个答案:

答案 0 :(得分:9)

您需要在gameViewController文件中scene.size = skView.bounds.size之前添加skView.presentScene(scene)

答案 1 :(得分:2)

这对我来说是有效的,可以将背景图像拉伸到适合Swift 5的整个屏幕。

background.size = CGSize (width: frame.maxX, height: frame.maxY)