gpt4 book ai didi

macos - Sprite 套件 OS X : SKTexture size property is incorrect

转载 作者:行者123 更新时间:2023-12-04 20:44:48 24 4
gpt4 key购买 nike

我正在 OS X 版本的 Sprite Kit 上测试一个游戏,发现一些纹理错误地报告了它们的大小。我想知道是否还有其他人看到这个问题,是否有解释?

只是为了在我将此报告为错误之前排除任何其他问题。如果这是一个已知的错误,请说出来。

我正在加载这个纹理,它的大小是 256x256 像素:

enter image description here

当我记录从此图像创建的 SKTexture 时,SKTexture 描述给了我正确的大小,但 size属性没有,它说图像是 204.8 x 204.8。

tex = <SKTexture> 'Tileset_GeometryB.png' (256 x 256)
tex.size = {204.80000000000001, 204.80000000000001} // Huh? WTF?!?
tex.textureRect = {{0, 0}, {1, 1}}

我在 iOS 模拟器和设备上使用相同的代码加载完全相同的纹理 - 大小属性始终正确:256x256。

我还尝试在其他任何事情之前加载此纹理,以避免任何可能的副作用。仍然纹理大小是错误的。

值得注意的是,这不会发生在所有纹理上,但会发生在我加载的所有 256x256 纹理上。 128x256 纹理正确报告其大小。

我还做了一个干净的构建,我正在使用 Xcode 5.0.1 (5A2053) 在 Mavericks (13A603) 上进行测试。

最佳答案

显然这个问题是由不兼容的图像程序引起的,在我的情况下,Inkscape 始终是罪魁祸首。

Inkscape 创建的 PNG 文件 似乎工作正常,但导致 Sprite Kit 错误地报告大小。在我遇到这种情况的每一个例子中,修复只是打开 Seashore 中的 PNG 文件。 ,然后在相同的文件名下“另存为”以强制程序重新保存PNG文件。

我认为使用其他图像程序打开和保存也可能工作,甚至预览可能有助于解决此问题或命令行工具,如 PNGCrush .

还有一定的一致性,因为 Inkscape 纹理大小报告为少 20%,即 256 纹理为 204.8,1 像素纹理为 0.8。问题似乎与 Inkscape 的 ppi(每英寸像素数)设置有关,它不允许低于 90 ppi 的值。但 Photoshop 的默认值是 72 ppi,正好少了 20%。我认为 Sprite Kit 假设 PNG 为 72 ppi,得到一个 90 ppi 的图像,因此错误地(或正确?)计算出 PNG 的大小比实际大小小 20%。

关于macos - Sprite 套件 OS X : SKTexture size property is incorrect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19744111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com