好吧,我一直在尝试在我的iPhone 6s+和iPad 2上定位一行。这行是在SKCamera中添加的(我不知道这是否会影响它)。下面是这行的代码:
var leftWall = SKSpriteNode()
leftWall.size = CGSize(width: 1, height: 10000)
leftWall.position = CGPoint(x: 0, y: 0)
leftWall.color = UIColor.red
leftWall.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: leftWall.size.width, height: leftWall.size.height))
leftWall.physicsBody?.affectedByGravity = false
leftWall.physicsBody?.isDynamic = false
leftWall.physicsBody?.categoryBitMask = groundGroup
leftWall.physicsBody?.collisionBitMask = ballGroup
leftWall.physicsBody?.contactTestBitMask = 0
theCamera.addChild(leftWall)好的,x的位置是0,0,对吗?这是它在我的iPhone 6s+上的外观:

如你所见,这条线在中间?
下面是它在我的iPad 2上的样子:

我就是不明白为什么这条线的位置完全不同。请帮帮我!
发布于 2017-07-01 13:11:32
您没有考虑到iPad上发生的裁剪,或者您的scaleMode完全错误
您需要做的是将所有节点锚点(包括场景)设置为(0.5,0.5),确保GameScene具有静态大小,而不是基于view.frame (750,1334比较好),并且将缩放模式设置为.aspectFill。这使得(0,0)成为屏幕的中心,您将注意到所有设备上的所有内容都排列在一起
https://stackoverflow.com/questions/44856019
复制相似问题