我在这里做错了什么?
let bgImage = SKSpriteNode(imageNamed: "Background.png")
var alloment1 = SKSpriteNode(imageNamed: "startingPatch.png")
override func didMoveToView(view: SKView) {
bgImage.position = CGPointMake(CGRectGetMidY(self.frame), CGRectGetMidX(self.frame))
self.addChild(bgImage)
alloment1.position = CGPointMake(CGRectGetMidY(self.frame), CGRectGetMidX(self.frame))
self.addChild(alloment1)
}
我在GameScene.swift文件中设置了这个。我不知道会发生什么。我的背景png是1920x1080px(这是6+的分辨率),我想要在屏幕上的图像是180px
答案 0 :(得分:1)
虽然iPhone 6+的尺寸为1920x1080px。 XCode使用点而不是像素进行编码,这样应用程序至少可以与所有苹果设备兼容。 6+为3X密集,因此为了获得点密度,将边界除以3(640 x 360)。
您所要做的就是使用xScale
和yScale
属性缩小每个图像。
let bgImage = SKSpriteNode(imageNamed: "Background.png")
var alloment1 = SKSpriteNode(imageNamed: "startingPatch.png")
override func didMoveToView(view: SKView) {
bgImage.position = CGPointMake(CGRectGetMidY(self.frame), CGRectGetMidX(self.frame))
bgImage.xScale = 0.333
bgImage.yScale = 0.333
self.addChild(bgImage)
alloment1.position = CGPointMake(CGRectGetMidY(self.frame), CGRectGetMidX(self.frame))
alloment1.xScale = 0.333
alloment1.yScale = 0.333
self.addChild(alloment1)
}