SKSpriteNode是巨大的

时间:2015-05-19 00:52:17

标签: swift sprite-kit

我在这里做错了什么?

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!

1 个答案:

答案 0 :(得分:1)

虽然iPhone 6+的尺寸为1920x1080px。 XCode使用点而不是像素进行编码,这样应用程序至少可以与所有苹果设备兼容。 6+为3X密集,因此为了获得点密度,将边界除以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)
}