【发布时间】:2018-11-04 09:48:37
【问题描述】:
我遇到的问题是我添加的图像失真。我在(1125 x 2436)为iPhone X创建了一个像素精确的背景,所以我不必使用.aspectFill和.aspectFit,因为我想要一个没有黑色边框的屏幕。
我使用以下代码来创建图像:
func animateDeck() {
let chip = SKSpriteNode(imageNamed: "Chip")
chip.position = CGPoint(x: 300, y: 400)
chip.zPosition = 2
chip.setScale(1)
gameScene2.addChild(chip)
print("test")
}
有没有办法在不使用.aspectFit 或.aspectFill 的情况下以正确的尺寸显示图像?
now (left) and how it should be (right)
提前谢谢你!
【问题讨论】:
-
如果你有一个与 iPhone X 尺寸完全相同的图像,并将位置设置为
view.center,你应该没问题。但是,即使它应该完美贴合,也请将其设置为aspectFill或aspectFit,以免在其他屏幕尺寸上出现失真。 -
尝试检查
chip是否符合您的预期大小 - 如果不是,您可以使用chip.size = CGSize(width: 1125, height: 2436)进行设置。 -
我创建了一个尺寸为 1125 x 2436 的新图像。中间是 128x128 芯片。图像的其余部分是透明的。不幸的是,这不起作用。使用另一个变体
gameScene2.scaleMode = .aspectFit再次显示黑条,我想阻止它。 -
如果不移动背景,为什么不考虑在视图控制器而不是场景中添加
UIImage? -
当我使用
let image = UIImage(named: "Chip")时,我无法将其用作节点。所以我不能再使用SKPhysicsBody、SKAction等。
标签: swift sprite-kit skspritenode