问题标签 [sktextureatlas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
229 浏览

ios - 预加载 SKTextureAtlases 会导致内存问题和崩溃

我正在制作一个冒险类型的游戏。在制作这个游戏时,我遇到了内存泄漏,所以我决定创建一个预加载器,我称之为 SKPreloader。

在我的 GameViewController 中:

在 SKPreloader 中:

以 _ 为前缀的文本是 SKTextureAtlases。

在 GameViewController 中读取委托并启动第一个场景。当 SKPreloader 到达方法 preloadRestOfTextureAtlases 时,内存使用量为 240mb 并停留在那里,最终导致崩溃。

关于如何解决这个问题并仍然预加载地图集的任何帮助?

补充:最大的图集是16mb。所有小图集都预加载在最后一个数组中。

0 投票
1 回答
254 浏览

animation - 从现有纹理图集 jpg 在 SpriteKit 中创建纹理 altas

我正在尝试使用在 Xcode/我的机器之外创建的先前图像资产中的现有资产创建纹理图集。

将图像导入 Xcode 不会“拆分”它,我不确定如何告诉 Xcode / SpriteKit “图集”位置在哪里。

除了使用图像编辑器并手动将每张图像作为资产使用之外,我如何让 Xcode 相信该图像已经是真正的图集了?

最后,使用图集是否值得,因为我必须自己循环浏览图像才能制作动画;我最好硬编码(!)atlas 条的 x/y 位置并在 SKAction 中执行某种旋转/循环代码?

0 投票
2 回答
785 浏览

ios - Sprite Kit animateWithTextures 滞后

我在我的 Sprite Kit 游戏中使用纹理图集。我正在SKTextureAtlas为每个动画创建对象并将其纹理存储在数组中。因此,当我需要我的英雄上的一些动画时,我调用animateWithTextures发送相应的数组。当我开始动画时会有一些滞后。有什么方法可以顺利启动动画吗?

0 投票
5 回答
2995 浏览

ios - Spritekit - 不从 SKTextureAtlas 加载 @3x 图像

由于我的示例项目已被删除(我认为这将更容易测试),我将发布一些代码和图像来说明我的观点。

这是示例图像

2x 图像

我的 3x 图像

我的地图集设置:

在此处输入图像描述

我的启动图像设置:

在此处输入图像描述

我将这些精灵添加到我的场景的代码

这些是我的结果:

iPhone 5 模拟器:

在此处输入图像描述

iPhone 6 plus 模拟器:

在此处输入图像描述

我尝试更改启动图像以使用资产目录。然后 iPhone 6 plus 似乎升级了 2 倍屏幕。它仍在加载 2x 图像,但将其放大。

我需要它来加载我的 3x 图像并使用我的 2x 图像进行缩放。

Gabuh 在下面的回答为我指明了正确的方向。在一个新项目上工作。但是,如果我将他的解决方案用于我真正的 SpriteKit 项目,我的 3x 图像不会缩小。它们比应有的大 3 倍。

0 投票
0 回答
351 浏览

ios - 如何为 Sprite Kit 创建图集文件?

我刚刚玩弄了 SpriteKit,我注意到 Apple 示例使用带有“atlas”扩展的 SpriteKit。因为他们不在 Xcode 中使用它们,所以我做的是使用 |"Asset files"| 并将它们重命名为“.atlas”

这是解决这个问题的正确方法还是我错过了一些模板?

此外,最重要的是,有没有一种方法可以捆绑声音文件(我不在乎什么格式,因为我可以重新编码它们),以便它们也被格式化成一个存档?

0 投票
1 回答
563 浏览

ios - SKTextureAtlas preloadTextureAtlases: withCompletionHandler 是如何工作的?

我试图弄清楚这两个示例之间的区别以及 preloadTextureAtlases :withCompletionHandler 的工作原理。这是代码:

我想 preloadTextureAtlases 因为我的动画很流畅而在后台线程上加载?

但是从后台线程调用 preloadTextureAtlases 有什么区别(或者它可能有问题)吗?像这样:

然后从 didMoveToView 调用这个方法:

0 投票
1 回答
200 浏览

ios - 预加载 SKTextures/SKTextureAtlas 混淆

我已经阅读了此处有关此主题的所有帖子,但似乎没有一个回答我的问题。

我的问题是 SKTexture/SKTextureAtlas 何时加载到内存中?

根据我的阅读,您需要保持对使用 [SKTexture preloadTextures: withCompletionHandler:] 加载到内存中的任何 SKTexture 或 SKTextureAtlas 的强引用,这样它就不会随 ARC 一起释放,这对我来说很有意义,因为对象会得到当没有人保留它时,在方法结束时释放。我不明白的是,具有强指针的 SKTexture 如何不加载到内存中,这不会使 [SKTexture preloadTextures: withCompletionHandler:] 变得多余和不必要,因为纹理已经加载到内存中。我显然错过了一些东西,所以任何见解都会很棒。

干杯!

0 投票
1 回答
1690 浏览

ios - 如何预加载纹理图集以获得更好的 FPS?迅速

好的,所以我一直试图在整个互联网上找到答案,似乎我几乎得到了它。所以我所做的是我在一个类之外声明了我的纹理图集变量,以便它们在我的项目中是全局的。像这样的东西:

然后,在我的 GameViewController 中,我正在预加载它们,完成后我将展示我的 GameScene,如下所示:

当我运行游戏时,我的 LaunchImage 出现后,会弹出一个灰色屏幕,然后将我带到游戏中。但是播放器不再工作了!现在它无法移动或其他任何东西..

0 投票
1 回答
232 浏览

ios - 从字典创建 SKTextureAtlas

如果 iOS 项目有 UIImages 字典,如何在运行时从字典图像正确创建 SKTextureAtlas?我无法实现这个目标,尽管 Apple 的 SKTextureAtlas 类参考在声明图集时建议以下内容:方便初始化!(字典属性:[NSObject:AnyObject])。

例如,如何完成或修改以下代码以从 tempDictionary 中的 UIImages 创建 SKTextureAtlas?

0 投票
0 回答
225 浏览

ios - iphone 6 plus 的 SpriteKit 纹理图集

我一直在尝试为 iphone 6 plus 加载纹理图集,但 Xcode 6.2 不会为 3x 图像生成纹理图集。它实际上创建了一个没有3x 前缀的纹理图集,而是使用了 2x 图像(我通过对 3x 图像使用不同的内容来验证它)

在我的项目中,我有一个名为“sprites.atlas”的文件夹,其中包含 2x 和 3x 后缀的图像。

我在 SO(此处此处)中阅读了有关此问题的信息,但仅找到了替代方案(例如手动选择图集),但我担心这会在以后的 iOS 版本中回击,因为它感觉不正确。

有谁知道如何解决这个问题?Xcode 6.3 解决了这个问题吗?