问题标签 [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 投票
1 回答
317 浏览

swift - 无法在 Swift 操场上加载纹理图集?

好吧,过去我只是通过输入它的名称将 SKTextureAtlas 加载到我的类中,但是现在在 Swift 游乐场中我尝试添加几个扩展名(.atlas、.spriteatlas、无扩展名..)以及其他所有内容,但是我得到了错误:

这就是我得到这个的方式:

我认为这是他们在操场上没有目标的问题,但是我已将其放入资源文件夹中,它应该能够识别图集:

在此处输入图像描述

如何使用 Swift 3 在 Playground 中获得纹理图集?

0 投票
1 回答
1113 浏览

swift - Swift 4 中的 Sprite Kit 动画和纹理图集

目前正在开发一个需要通过一组图像制作一点动画的应用程序。我在网上对如何解决我的问题进行了大量研究,但对 Swift 4 没有任何帮助。下面是我的代码,它显示了当我运行应用程序但根本没有动画时循环中的第一张图片。一切看起来都很好,我的代码没有问题,但也许你们可以提供帮助。进阶欣赏!

0 投票
1 回答
2457 浏览

ios - 在 SpriteKit 项目中使用精灵图集、纹理图集或资产目录

Apple 推荐的在 SpriteKit 项目中组织资产的方式在引擎的历史过程中发生了很大变化。旧方法中也存在一些错误,这些错误阻碍了这些做法的实施并需要解决方法。关于 SO 的旧 Q&A 充满了过时的信息,或者被关于处理不再存在的错误的信息所混淆。需要在 SO 上发布一篇文章,说明如何实施该问题的当前解决方案,而不会因讨论过时的工作流程或已解决的错误而分心。所以问题是这样的:

如何在 SpriteKit 项目中组织我的图像资源?一些 Apple 文档说使用纹理图集来提高性能。但是SKTextureAtlas类参考描述了创建纹理图集和精灵图集的选项。我应该使用哪一个以及如何实现它?

0 投票
1 回答
97 浏览

ios - 如何在 IOS 中使用 TextureAtlas 从 Internet 加载纹理?

首先,我在编译之前向项目添加了纹理,SKTextureAtlas 基于 .atlasc 文件夹创建了一组大小正确的纹理。但是当纹理数量增加时,将它们存储在项目中变得不合理,所以我开始从网络加载它们。SKTextureAtlas 不会组装它们,而是要求通过图片手动添加它们。我使用 TexturePacker 来存储纹理。如何处理从网络加载的纹理?或者如何使用 JSON 或 .plist 从 texturePacker 中正确删除它们?

0 投票
2 回答
93 浏览

swift - SKTextureAtlas 留在记忆中

我做了一个快速项目来了解 SpriteKit 如何从内存中释放地图集。每次点击屏幕时,都会创建一个图集并将其加载到内存中。对图集的唯一引用是您在下面的代码中看到的内容,我认为由于 var 位于非转义函数内部,因此它不具有强引用。我的目标是最终释放加载到内存中的先前地图集,但是内存堆积并最终崩溃。

我知道地图集只应该加载一次,Apple 在这里提出的三点(使用 Sprites)关于为什么不释放纹理

有人可以帮我理解为什么会这样吗?

在此处输入图像描述 每次检测到触摸时都会创建一个新的内存阶梯

0 投票
1 回答
139 浏览

ios - 如何从 SKTextureAtlas 为 SKPhysicsBody 纹理设置动画

我有一个 SKTextureAtlas,其中包含 7 帧具有透明背景的动画精灵。

我已经能够使用图集中的单个帧作为物理体的边界,但我想知道如果可能的话,如何让物理体更新图集中每个帧的轮廓。

在这里,我有使用名为“Run0”的框架的物理体,并且它被正确应用。我只是想看看这是否可能,或者让物理体使用图集中从“Run0”到“Run7”的每一帧是否完全不切实际。

带有“Run0”轮廓的物理体图像

这是我正在处理的代码:

类游戏场景:SKScene {

}

0 投票
1 回答
83 浏览

ios - Xcode 模拟器正确显示纹理但不显示设备

我刚刚将 SpriteKit 游戏中的纹理切换为使用 Sprite Atlas。当我在模拟器上测试时一切正常,但在我连接的实际 iPhone 上却没有。地图集中的所有纹理都以排序网格模式显示,缩小和扭曲以适合 SKShapeNode。

这是我正在使用的代码

我确定这是一个愚蠢的错误,但无法弄清楚是什么。

谢谢您的帮助!


更新

我只使用 5 个完全独立的纹理。如果我为每个纹理创建一个新图集,它就可以正常工作。这似乎效率低下?或者这是我应该做的,因为这些纹理不是同一动画的帧。

0 投票
0 回答
170 浏览

swift - 使用 atlas 纹理并调用其 cgImage() 函数时,图像视图会显示损坏的图像

当我将 iPhone XS Max 更新到 13.2.2 并将 macOS Catalina 更新到 10.15.1 后,我就返回了我的项目并将其运行到我的设备上。我立即注意到显示从 SKTexture.cgImage() 创建的 UIImage 的每个 UIImageView 都在渲染一些看起来像 Pokemon Red 中的missingno 的东西。那些相同的图集纹理在 SKSpriteNode 中渲染得很好。日志调试返回 UIImage 内存为uiimage 匿名

在此处输入图像描述

水平的白线和蓝线是与任何东西无关的单一背景图像。顶部有第二个较小的图像视图,它是使用纹理 cgImage() 调用渲染缺失/损坏图像的视图。我的代码是按照书本标准的:

我唯一的猜测是最新的更新做到了这一点。更新系统后,我实际上什么也没做。刚刚打开项目并运行它。有什么想法可以解决吗?是的,标准派生数据删除已尝试。Xcode -> 产品 -> 清理构建文件夹以及 Mac 和 iPhone 已重新启动我不知道我还能做什么,但祈祷

0 投票
1 回答
130 浏览

swift - 如何在 Swift 中使用合并图像制作动画?

我在图形编辑器中做了一个简单的动画,总共有四个图像。当我导出图像时,它们最终变成了一个 png。不知道为什么我不只是得到四个单独的图像——那些会很容易使用。无论如何,我如何循环动画的多合一图像?或者如何将图像分离为单独的 png 文件?

如果它们是分开的,这就是我将如何为图像设置动画:

0 投票
1 回答
231 浏览

ios - iOS、SpriteKit 将 SKTextureAtlas/SKTexture 转换为 UIImage

我正在尝试从 SKTexture 检索 UIImage,其中 SKTexture 来自 SKTextureAtlas。由于 .cgImage() 不适用于 Atlases,因此这更难。

无论如何,我想出了使用 CoreGraphic 的解决方案,但是,这似乎也不起作用。也许你能帮助我在这里做错了什么?

[ 在此处输入图像描述]

SKTextureAtlas 和 SKTextureAtlas 这个解决方案都不起作用知道我错过了什么,如何实现它?

干杯,席蒙