问题标签 [sktexture]

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 回答
1376 浏览

sprite-kit - SKTexture 缓存和重用如何在 SpriteKit 中工作?

在 StackOverflow 上经常提到 SpriteKit 做自己的内部缓存和重用。

如果我不努力重用纹理或图集,我可以从 SpriteKit 获得什么缓存和重用行为?

0 投票
1 回答
102 浏览

ios - UImage 加载整个 SKTextureAtlas 而不仅仅是 SKTexture

我需要带有“trueName”的纹理才能加载到我的 myImageViewOutlet.image 中。我得到的结果是将整个图集渲染到其中。我的代码如下

0 投票
1 回答
817 浏览

swift - 使用与原始尺寸不同的纹理为 SKSpriteNode 设置动画

我想使用 SKTextureAtlas 中的纹理为 SKSpriteNode 设置动画,使用SKAction.animateWithTextures(textures,timePerFrame,resize,restore). 但是,图集中的纹理的大小比原始纹理稍大(它基本上是一个移动的角色)。当动作运行时,纹理要么被压缩以适应精灵的原始大小,要么在我设置resize为时重新居中false,这会改变角色的位置。不过,我想要的是将纹理锚定在左下角(或右下角,取决于方向),以便角色的位置不会随着纹理的额外部分而改变。

我已经尝试在运行动作之前更改精灵的锚点,但显然这也适用于原始纹理。另外,我想改变原始纹理的大小会对物理行为产生影响,这是我想避免的。

有没有人有关于如何做到这一点的建议?

谢谢!

大卫

0 投票
1 回答
744 浏览

swift - Swift:如何处理内存中的大量纹理

我的游戏中有很多角色,因此我有很多纹理。当加载纹理图集(包含大约 5 个不同的图像纹理)时,它会增加内存使用并将其保持在该数量。所以更多的纹理只会不断增加这个数字,直到有时应用程序崩溃。我不需要一次所有的角色,我怎么能在我需要的时候加载一些角色纹理并在我不需要的时候释放其他的,但是我需要能够把它带回来。

0 投票
1 回答
809 浏览

ios - 这个 SKShapeNode 渐变着色代码有什么问题?

我正在尝试创建渐变色SKShapeNode

我从谷歌找到了下面的代码,但它只在color1为黑色时才有效,例如定义如下:

第二种颜色可以是任何颜色。

我希望颜色不是黑色。我无法弄清楚这段代码有什么问题。我定义SKShapeNode如下:

所有帮助表示赞赏!

0 投票
0 回答
87 浏览

sprite-kit - 在关卡编辑器 SWIFT 中使用 SKTexture 设置 SKSpriteNode

我有一个非常大的背景图像。因此,为了提高我的游戏性能,我想使用纹理资源而不是图像资源。

我使用 Xcode 8 级编辑器,我没有找到在属性检查器中使用我的纹理设置我的 SKSpriteNode 的位置。

是否可以在关卡编辑器中设置纹理?我的纹理没有出现在纹理选择框中。

在此处输入图像描述

我以编程方式尝试:

但它不起作用。

编辑

确实我有一个警告:

0 投票
1 回答
91 浏览

ios - 使用 pixeldata 从 SKTexture 创建 SKSpriteNode

我正在尝试从 RGBA 对象的 2D 数组创建一个 SKSpriteNode,它表示我要创建的图像中的像素。但是我不知道该怎么做,我搜索了教程并没有找到。

例如:

非常感谢您的帮助!

0 投票
1 回答
279 浏览

ios - 从 SKTexture(data:size:) 创建的 SKSpriteNode 存在 Alpha(不透明度)问题

从 pixelData 创建 SKSpriteNode 时遇到问题。

下面是我的代码。

对于底部的三行(这是 pixelData 数组中的前 3 部分,0xff0000ff, 0xff00ff00, 0xffff0000: Red、Green 和 Blue),它如我所愿。

但是,我希望第一行是完全透明的:0x000000ff,这应该意味着 rgba(1, 0, 0, 0)。但它看起来像这样:

我不知道为什么会这样。我对pixelData的理解错了吗?或者它是 SpriteKit 中的错误或什么?

非常感谢您的帮助!

0 投票
1 回答
211 浏览

sprite-kit - SKTexture 和 SpriteKit 中的 Sprite 之间的区别?

我正在学习 SpriteKit,但我真的不明白精灵(SKSpriteNode)和纹理(SKTexture)之间的区别是什么。我知道两者都是图像,“SKSpriteNode 是当前绘制的图像,而 SKTexture 仅保存图像中的数据以便稍后在游戏中加载它,因此您保存一次图像,然后您可以将SKSpriteNode 中的纹理,当你想要的时候”。

感谢您的帮助;)

0 投票
2 回答
234 浏览

image - 图像文件夹:创建和填充 SKShapeNodes,每个 1 个

是否可以创建一个文件夹并让 SpriteKit 遍历该文件夹,找到每个图像(无论名称如何),并为该文件夹中的每个图像创建一个 SKShapeNode(无论有多少)?

假设所有图像大小相同,并且所有 .png 文件准备用作唯一图像作为填充 SKShapeNode 的纹理,并且所有 SKShapeNode 大小相同。

我想知道,一旦完成,已经创建了多少个形状,并根据使用的纹理图像的名称对它们进行唯一命名。

但我正在阅读的所有内容似乎都是关于事先知道有多少图像,以及它们的名字是什么。

不知道从哪里开始搜索如何做到这一点。

更新:不知道如何使用图像引用“文件夹”:

我已经将图像及其非常富有想象力的名称 [一、二、三、四、五等] 转储到一个文件夹中,称为“atlas”,如下所示:

在此处输入图像描述

但根据亚历山德罗的精彩回答,我不知道如何处理这个“文件夹”并了解其中的内容。

我认为这是我完全错误的这条线:

我不知道用什么来代替"Images"

更新 2:

找到了一个更简单的方法来做到这一点: