问题标签 [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 回答
1455 浏览

ios - 如果我稍后使用 SKTextureAtlas,Sprite Kit 是否会多次加载纹理图集?

这让我思考。

-spriteNodeWithImageNamed:游戏开始,我用方法创建精灵。稍后对于动画,我创建了一个 SKTextureAtlas 对象。有人说它更快,因为它-spriteNodeWithImageNamed:会首先在您的应用程序包中查找 png,然后再查看图集。

但我不清楚的是:如果我稍后创建一个 SKTextureAtlas ,这会知道已经加载的图集图像还是会变得愚蠢并再次加载图像?

如果我在多个节点中为同一个图集创建 SKTextureAtlas 对象。它会多次加载图集吗?我必须确保我对任何图集只使用一个 SKTextureAtlas 实例吗?

0 投票
3 回答
3220 浏览

ios - How to make Sprite Kit display @2x images from atlas at correct size?

When a project only has @2x images because it only targets retina display devices, atlas Sprite Kit atlas gets the scale wrong with the RGBA8888_COMPRESSED setting to use with PVR textures. RGBA8888_PNG (the default) sometimes works ok.

Before switching to atlas, I had all @2x images in a group and loaded them with:

#xA;

No problems. Correct size.

Now with atlas and RGBA8888_COMPRESSED, I get the SKTexture and the image is way too large. Exact same nodes and configuration. Only using SKTexture from atlas instead.

Why does this happen?

0 投票
2 回答
1024 浏览

sprite-kit - 如何摆脱 SKTextures?

也许这很容易,但我迷路了。

我有一个项目,我必须制作一个使用 8 jpg 来模拟页面打开的全屏动画。所以我正在做的是:

  • 我有一个全屏显示的 SKSpriteNode
  • 制作一个包含 8 个 SKTexture 的数组
  • 使用 SKTexture preloadTextures 加载它们
  • 加载后,我使用 animateWithTextures 来显示动画
  • 稍后,另一种方法将 SKSpriteNode 从场景中移除。

当我第一次翻页时,它使用了大量的内存,但是当我在它上面运行 removeFromParent 时,内存继续被使用。

我的 .m 文件在顶部声明了这一点:

因为我希望能够在这两种方法中轻松引用它。

我如何摆脱所有这些纹理等等?

0 投票
1 回答
484 浏览

ios - SKTextureAtlas:多图集令人困惑

我在使用多个图集时遇到问题。

例如,我有 main_menu.atlas 和 game.atlas 以及这些场景的图像。在主菜单场景出现之前,我为它准备了图集( [SKTextureAtlas atlasNamed:@"main_menu"] )并且一切正常。但是当我开始游戏并在游戏中准备游戏图集( [SKTextureAtlas atlasNamed:@"game"] )后,我只看到空节点(带有红色交叉的矩形)。没有例外或警告 - 一切正常。

当我将所有游戏资产移动到 main_menu.atlas 并删除 game.atlas 时,一切正常 - 我在游戏中看到了精灵。但我想分离图集以进行性能优化。

我使用自己的助手进行 SpriteKit 纹理管理。它加载图集并返回我需要的纹理。所以我有这些方法:

“清洁”没有帮助。我做错了什么?提前致谢。

0 投票
4 回答
1613 浏览

ios - 如何在应用程序中使用像素艺术?

我有一个使用精灵套件的 iOS 应用程序,我准备添加我的作品。艺术品是像素艺术,本质上非常小。我正在尝试找到以以下方式显示此内容的最佳方式:

  1. 所有艺术作品的大小都相同,这意味着一个图像像素与所有其他图像一样占据了真实世界像素的数量。

  2. 没有试图使纹理看起来更平滑的模糊,这在放大图像时经常发生。

我试过像这样解决第二个问题:

上面的代码是在 SKSpriteNode 的初始化中,它将具有纹理。

这是我的原始图像(放大以方便参考):

问题是我的结果总是这样:

它模糊!!!!

(被偏移的树干底部不是这个问题的一部分。)我没有使用任何运动模糊或类似的东西。我不确定为什么它不能正确显示。

编辑 1: 我没有在上面提到截屏时树木一直在动画。当它们静止时,它们看起来像这样:

上图是两棵树重叠,其中一棵因稍后修复的错误而翻转。我现在的问题是如何防止图像在动画发生时模糊?

编辑2:

我正在添加树的多个实例,每个实例都加载相同的纹理。我知道这与动画无关,因为我更改了代码以仅添加一棵树并对其进行动画处理,并且它被完美地像素化了。

0 投票
1 回答
1611 浏览

ios - SpriteKit SKTextureAtlas,在加载纹理时由于内存压力而终止

类似于 WWDC 的 SpriteKit 特色游戏“冒险”,我尝试通过图块加载我的背景图像。我创建了一个纹理图集,其中包含 6,300 个“图块”,每个“图块”大小为 100x100 像素。完整的背景图像总共为 30,000x2048(用于视网膜显示器)。这个想法是背景将从右向左移动(横向滚动条)。第一列和最后一列匹配,因此它们看起来是连续的。

当应用程序运行时,它会加载我的初始加载屏幕和标题图像,并在我的内存选项卡中达到54MB,CPU 使用率为16%。在我选择我的关卡之前,这与我在菜单中导航时保持不变,这会告诉后台线程加载关卡资产(其中包含上述背景图像)。整个 .atlas 文件夹显示只有35.4MB。我不认为这是一个问题,因为 Adventure .atlas 文件夹(来自 WWDC)显示仅为32.7MB

一旦我选择了关卡,它会在我开始接收内存警告之前加载 .atlas 文件夹中的大约 20 个纹理并且它会导致应用程序崩溃。我检查了 Instruments 是否有泄漏,它没有显示任何内存泄漏。我没有收到任何编译器错误(甚至没有 EXC_BAD_ACCESS 错误)。我查看了我的设备控制台,发现了应用程序崩溃的几行代码,但这对我来说似乎没有多大意义。我也检查了僵尸,但似乎没有找到。

CoreLevel.m

这似乎与调试控制台的崩溃有关:

我没有足够的声誉来发布图片,所以这里是我在 Instruments 中分配的屏幕截图的链接:

http://postimg.org/image/j17xl39et/

非常感谢任何帮助和建议!如果我遗漏了一些相关信息,我很高兴更新。

0 投票
1 回答
481 浏览

ios - SpriteKit 在其他 SKScene 上运行时崩溃

我有一个有趣的形式崩溃。我设置SKAction喜欢

但是当我不先运行这个动作SKScene并转到其他SKScene时,当我设置相同的动作时,我会崩溃

在此处输入图像描述

但是,如果我首先运行此操作SKScene,接下来一切正常SKScene

SpriteKit里面有问题SKTexture吗?

像这样运行我的动作

0 投票
1 回答
299 浏览

xcode - SKTextureAtlas 为什么在我制作新的时不刷新?

我正在 iOS 中使用 SpriteKit 制作一个小项目。使用 SKTextureAtlas,所以我用 foo.atlas 创建了一个文件夹,将我所有的 png 文件放入其中,运行,一切正常。但是当我删除这个文件夹,并添加一些png,并在项目中再次拖动这个文件夹并运行时,我所有的精灵都有错误的位置,而且都是错误的位置和大小,如何解决这个问题?顺便说一句,我已经尝试产品-> 构建干净。但似乎不行。

0 投票
1 回答
265 浏览

sprite-kit - SKTextureAtlas 中的 SKTexture 是否支持 mipmap 功能?

来自苹果文档:“如果纹理的两个维度都是 2 的幂,则只能请求 mipmap。”

但是,尚不清楚来自 SKTextureAtlas 的 SKTextures 是否也支持此功能(因为它们本质上有些不同)。

我问这个问题是因为实际上很难从结果中看出是否有任何东西被 mipmap 了。

0 投票
2 回答
2594 浏览

ios - ios从图集加载纹理不起作用

我有一个带有一堆图块的图集,我正在尝试使用 SKTexture 和 SKTextureAtlas 将它们加载到内存中,但它不起作用。我使用以下代码加载它们:

然后我使用这段代码将它们添加到我的场景中:

问题是它没有为图块加载正确的纹理或根本找不到纹理。我最终得到的是这个(忽略蓝色圆圈):http: //i.stack.imgur.com/g39BF.png

这是我的瓷砖图集:http ://snk.to/f-ctp5yhpz

编辑:我正在使用 NameChanger(www.mrrsoftware.com/MRRSoftware/NameChanger.html) 重命名我的所有图块,是那个程序弄乱了我的 png 吗?据我所知,在我重命名它们后它们的顺序是正确的。