问题标签 [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.
sprite-kit - SKTexture 缓存和重用如何在 SpriteKit 中工作?
在 StackOverflow 上经常提到 SpriteKit 做自己的内部缓存和重用。
如果我不努力重用纹理或图集,我可以从 SpriteKit 获得什么缓存和重用行为?
ios - UImage 加载整个 SKTextureAtlas 而不仅仅是 SKTexture
我需要带有“trueName”的纹理才能加载到我的 myImageViewOutlet.image 中。我得到的结果是将整个图集渲染到其中。我的代码如下
swift - 使用与原始尺寸不同的纹理为 SKSpriteNode 设置动画
我想使用 SKTextureAtlas 中的纹理为 SKSpriteNode 设置动画,使用SKAction.animateWithTextures(textures,timePerFrame,resize,restore)
. 但是,图集中的纹理的大小比原始纹理稍大(它基本上是一个移动的角色)。当动作运行时,纹理要么被压缩以适应精灵的原始大小,要么在我设置resize
为时重新居中false
,这会改变角色的位置。不过,我想要的是将纹理锚定在左下角(或右下角,取决于方向),以便角色的位置不会随着纹理的额外部分而改变。
我已经尝试在运行动作之前更改精灵的锚点,但显然这也适用于原始纹理。另外,我想改变原始纹理的大小会对物理行为产生影响,这是我想避免的。
有没有人有关于如何做到这一点的建议?
谢谢!
大卫
swift - Swift:如何处理内存中的大量纹理
我的游戏中有很多角色,因此我有很多纹理。当加载纹理图集(包含大约 5 个不同的图像纹理)时,它会增加内存使用并将其保持在该数量。所以更多的纹理只会不断增加这个数字,直到有时应用程序崩溃。我不需要一次所有的角色,我怎么能在我需要的时候加载一些角色纹理并在我不需要的时候释放其他的,但是我需要能够把它带回来。
ios - 这个 SKShapeNode 渐变着色代码有什么问题?
我正在尝试创建渐变色SKShapeNode
。
我从谷歌找到了下面的代码,但它只在color1为黑色时才有效,例如定义如下:
第二种颜色可以是任何颜色。
我希望颜色不是黑色。我无法弄清楚这段代码有什么问题。我定义SKShapeNode
如下:
所有帮助表示赞赏!
ios - 使用 pixeldata 从 SKTexture 创建 SKSpriteNode
我正在尝试从 RGBA 对象的 2D 数组创建一个 SKSpriteNode,它表示我要创建的图像中的像素。但是我不知道该怎么做,我搜索了教程并没有找到。
例如:
非常感谢您的帮助!
sprite-kit - SKTexture 和 SpriteKit 中的 Sprite 之间的区别?
我正在学习 SpriteKit,但我真的不明白精灵(SKSpriteNode)和纹理(SKTexture)之间的区别是什么。我知道两者都是图像,“SKSpriteNode 是当前绘制的图像,而 SKTexture 仅保存图像中的数据以便稍后在游戏中加载它,因此您保存一次图像,然后您可以将SKSpriteNode 中的纹理,当你想要的时候”。
感谢您的帮助;)
image - 图像文件夹:创建和填充 SKShapeNodes,每个 1 个
是否可以创建一个文件夹并让 SpriteKit 遍历该文件夹,找到每个图像(无论名称如何),并为该文件夹中的每个图像创建一个 SKShapeNode(无论有多少)?
假设所有图像大小相同,并且所有 .png 文件准备用作唯一图像作为填充 SKShapeNode 的纹理,并且所有 SKShapeNode 大小相同。
我想知道,一旦完成,已经创建了多少个形状,并根据使用的纹理图像的名称对它们进行唯一命名。
但我正在阅读的所有内容似乎都是关于事先知道有多少图像,以及它们的名字是什么。
不知道从哪里开始搜索如何做到这一点。
更新:不知道如何使用图像引用“文件夹”:
我已经将图像及其非常富有想象力的名称 [一、二、三、四、五等] 转储到一个文件夹中,称为“atlas”,如下所示:
但根据亚历山德罗的精彩回答,我不知道如何处理这个“文件夹”并了解其中的内容。
我认为这是我完全错误的这条线:
我不知道用什么来代替"Images"
。
更新 2:
找到了一个更简单的方法来做到这一点: