Swift 为什么我的节点在每个设备上的位置都不同?

Swift 为什么我的节点在每个设备上的位置都不同?,swift,sprite-kit,sprite,cgpoint,Swift,Sprite Kit,Sprite,Cgpoint,好的,我一直在尝试在我的iphone6s+和ipad2上定位一条线路。这条线是在SKCamera中添加的(我不知道这是否会影响它)。以下是该行的代码: var leftWall = SKSpriteNode() leftWall.size = CGSize(width: 1, height: 10000) leftWall.position = CGPoint(x: 0, y: 0) leftWall.color = UIColor.red leftWal

好的,我一直在尝试在我的iphone6s+和ipad2上定位一条线路。这条线是在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上的外观:


我只是不明白为什么这条线的位置完全不同。。请帮帮我

你没有考虑到iPad上的裁剪,或者你的scaleMode完全错了


您需要做的是将所有节点定位点(包括场景)设置为(0.5,0.5),确保游戏场景的大小是静态的,而不是基于view.frame(7501334是一个好的),并且缩放模式设置为.aspectFill。这使(0,0)成为屏幕的中心,您会注意到所有设备上的所有东西都排列成行

这取决于场景的定位点,除非节点的定位点被专门设置。@ElTomato我已经尝试将其上的定位点设置为0,0,但没有任何改变。为什么要将节点的定位点设置为0,0?场景本身的定位点是什么?如果你能制作一个复制此问题的最小项目并发布它,那么我将尽力帮助你。Knight0fDragon,出于某种原因,除了墙之外,所有东西都排列整齐。似乎墙的位置并没有随每个设备而更新。它总是说它的x坐标在每台设备上都是512为什么不在每台设备上都是512我如何通过不做游戏场景(view.frame.size)来检查它是否有一个静态大小