Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift&;SpriteKit:全屏图像_Ios_Swift_Resize_Sprite Kit - Fatal编程技术网

Ios Swift&;SpriteKit:全屏图像

Ios Swift&;SpriteKit:全屏图像,ios,swift,resize,sprite-kit,Ios,Swift,Resize,Sprite Kit,我正在用斯威夫特的SpriteKit拍摄第一场戏。我为尺寸为640x1136的4英寸iPhone创建了一个背景图像。我把图像作为精灵放在屏幕的中心,但图像不是全屏的,边缘缺失 接下来,我尝试在应用程序中调整图像大小。当我做了image.size.height=self.size.height时,高度在整个iPhone屏幕上得到了正确调整。 但是,当我对widthimage.size.width=self.size.width做了同样的操作时,图片的宽度就被极大地拉伸了 我打印了self.size

我正在用斯威夫特的SpriteKit拍摄第一场戏。我为尺寸为640x1136的4英寸iPhone创建了一个背景图像。我把图像作为精灵放在屏幕的中心,但图像不是全屏的,边缘缺失

接下来,我尝试在应用程序中调整图像大小。当我做了
image.size.height=self.size.height
时,高度在整个iPhone屏幕上得到了正确调整。 但是,当我对width
image.size.width=self.size.width
做了同样的操作时,图片的宽度就被极大地拉伸了

我打印了self.size的尺寸,结果显示我的iphone5s的尺寸是1024768。这完全是胡说八道,因为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)
    }
您需要添加

scene.size=skView.bounds.size

还是Swift 5

scene.size=self.view.bounds.size


就在gameViewController文件中的
skView.presentScene(scene)
之前,这是我在Swift 5中拉伸背景图像以适应整个屏幕的工作

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

你确定你的模拟器不是iPhone 5s吗?我在我的iPhone 5s和iPhone 5s的模拟器上都进行了测试,他们做了同样的事情。如果你的图像需要是768*1024,为什么你要把它做成640*1136?然后我用768*1024的尺寸重新创建了图像,并尝试了同样的方法。这一次,图像再次被“缩小”,但它甚至不再与屏幕成比例。此外,4英寸的视网膜显示器具有640*1136的分辨率。Source在您的gameViewController文件中是否有:scene.size=skView.bounds.size就在skView.presentScene(scene)之前谢谢。这解决了错误调整大小的问题。