Ios Swift&;SpriteKit:全屏图像
我正在用斯威夫特的SpriteKit拍摄第一场戏。我为尺寸为640x1136的4英寸iPhone创建了一个背景图像。我把图像作为精灵放在屏幕的中心,但图像不是全屏的,边缘缺失 接下来,我尝试在应用程序中调整图像大小。当我做了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
image.size.height=self.size.height
时,高度在整个iPhone屏幕上得到了正确调整。
但是,当我对widthimage.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)之前谢谢。这解决了错误调整大小的问题。