SKSpriteNode 是巨大的

SKSpriteNode is gigantic

我做错了什么?

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

编辑:Image of what is happened!

尽管 iPhone 6+ 的尺寸为 1920x1080 像素。 XCode 使用点而不是像素进行编码,因此应用程序至少可以与所有苹果设备兼容。 6+ 的密度是 3 倍,因此为了获得点密度,将边界除以 3(640 x 360)。

您所要做的就是像这样使用 xScaleyScale 属性缩小每个图像。

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)
}