Swift 自动布局渲染不一致

Swift 自动布局渲染不一致,swift,autolayout,Swift,Autolayout,在我的SpriteKit游戏中,自动布局存在一些问题,从一个场景到另一个场景似乎存在一些不一致: 首先,尽管在第一和第二个场景中使用同一件艺术品作为地面,但在第一个场景中,艺术品看起来要小得多。我不知道这怎么可能。它们都是PNG文件,保存图像的两个场景是.swift,我将完全相同的图像加载到imagesx.cassets中。但是,当第一个场景打开时,地面节点比第二个场景(我首先创建的场景)中的节点短且薄 另一个不一致之处是在我的第二个场景中使用: self.groundbar.anchorPoi

在我的SpriteKit游戏中,自动布局存在一些问题,从一个场景到另一个场景似乎存在一些不一致:

首先,尽管在第一和第二个场景中使用同一件艺术品作为地面,但在第一个场景中,艺术品看起来要小得多。我不知道这怎么可能。它们都是PNG文件,保存图像的两个场景是.swift,我将完全相同的图像加载到imagesx.cassets中。但是,当第一个场景打开时,地面节点比第二个场景(我首先创建的场景)中的节点短且薄

另一个不一致之处是在我的第二个场景中使用:

self.groundbar.anchorPoint = CGPointMake(0.0, 0.5)
self.groundbar.position = CGPointMake(CGRectGetMinX(self.frame), CGRectGetMinY(self.frame) + (self.groundbar.size.height) / 2)
接地棒正好位于我的屏幕底部,穿过接地棒中间(如y值所示)

现在,当我在第一个场景中尝试相同的代码时,屏幕上没有地面。我认为这可能是由于奇怪的事实,即地面在第一个场景中渲染得更小,但这并不重要,因为它是自动布局的,并且引用了节点的特定特征

看起来我几乎要处理两组独立的自动布局约束之类的问题。第一个场景是物理世界,第二个场景不是,但是当我移除第一个场景中的地面时,仍然没有正确渲染

即使我尝试更改锚点,节点的纹理也会在视觉上移动,但碰撞物理保持不变

为什么自动布局的主要区别是什么?
为什么我的两件艺术品在同一场景中渲染时大小不同,尽管它们是相同的艺术品?

您应该能够检查游戏的视图控制器中使用的是哪个scaleMode。确保ScaleMode相同(共有三个ScaleMode:.AspectFill、.AspectFit和.ResizeFill)。接下来,确保锚点匹配(默认情况下,锚点为(x:0,y:0)。这两件事都可以在游戏的ViewController中检查。

您不能将自动布局与精灵套件一起使用-自动布局仅用于UIKit。关于您的问题,您是否检查了每个场景的
scaleMode
size
?第一个场景在启动屏幕后立即加载。我有一个节点,单击该节点时,将初始化第二个场景。我使用的代码是:scene.scalemode=.ResizeFill和scene.size=skView.bounds.sizear您是否为每个场景使用不同的
scalemode
?这肯定会导致场景之间的对象看起来不同。我是初学者,不太清楚您的意思。有什么方法可以检查scalemode吗?