主要的Xcode 7 Sprite Kit Atlas Bug

时间:2015-07-10 21:27:55

标签: ios macos sprite-kit xcode7 ios9

所以今天我决定开始在El Capitan和iOS 9上测试我的游戏。这是一个大型项目,我在业余时间工作了将近2年。所以我将我的代码移植到Swift 2.0,点击运行按钮并祈祷Apple没有破坏Sprite Kit(就像过去一样:onetwothreefour,甚至不让我开始使用形状节点...)。所以我的游戏启动了,你知道什么 - 我的所有节点都被错误定位,以及我的动画纹理。还有其他一些小错误,例如抽奖计数没有显示但是那些很小,希望它们也会被修复。

所以我开始调试,最终我发现大部分问题都与我的地图集中的节点没有正确定位有关。所以我使用一个节点创建了一个如下所示的示例项目。您可以在图片中看到我将节点锚点设置为(0,0)并将位置设置为(0,0)。场景的锚点也是(0,0)。我打印出所有这些值以验证它们是否正确。

enter image description here

您还可以看到它在编辑器中正确绘制。然而,当我启动游戏时,我得到以下内容:

enter image description here

您可以看到节点绘制错误。它的位置是(0,0)但是它被绘制了偏移量。并且我的场景没有缩放,它与视图的大小相匹配,并在ResizeFill上设置。

我在El Capitan和iOS 9上都遇到了这个问题。有趣的是,图像包含透明像素越多,问题就越明显。从编辑器屏幕截图中可以看出,我的图像包含许多透明像素,因为我想清楚地显示错误。如果我使用了较少透明的像素,则节点的偏移量会减少。

如果我不使用地图集,则正确绘制节点,如下所示。但是我显然想要使用地图集,以便我可以批量渲染我的节点。

enter image description here

我已经在雷达上提交了这个错误。有没有人找到一个解决这个问题的方法,不涉及不使用地图集?

1 个答案:

答案 0 :(得分:0)

我在发布问题时找到了解决方法。希望这有助于遇到此问题的其他人。并且希望Apple在最终版本发布之前修复这个主要错误。

如果您使用新的XCAssets地图集 AND ,则将部署目标设置为最新版本,即可正确呈现节点。因此,您所要做的就是将所有地图集移至XCAssets。这会影响iOS 8 / Yosemite的向后兼容性。

enter image description here