问题标签 [skcropnode]

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

swift - 你能用另一个 SKSpriteNode 屏蔽一个 SKSpriteNode

只是问标题问,我想知道这是否可能。SKCropNode 的大多数示例都使用纹理或形状。我想要完成的是自定义形状的面具。让我知道是否有办法!

0 投票
1 回答
133 浏览

swift - Private Boolean:如何使用 Swift 在 SKCropNode 上进行设置?

SKCropNode通过从其受影响的节点中删除其源图像未覆盖的所有事物来工作。这是一种掩蔽,另一种是反转此逻辑,并显示源图像未覆盖的所有内容。

SKCropNode有一个布尔开关来设置此状态,称为invertMask,足够明智。

令人讨厌的是,它似乎是私有的。

如果抛开所有应用商店的审批流程、私有 API 的危险等,并接受测试是有趣的事情……而这只是为了测试……

如何invertMask使用 Swift 将其设置为 true?

更新:

切线相似的问题还有其他答案:

如何在 Swift 中访问 iOS 私有 API?

然而,这对我没有帮助,也不是直接回答如何在 Swift 中设置一个布尔值,这个特定的,在这个特定的问题中。

我在这里问了一个关于选择器的问题,并接受了一个答案,表明我不需要使用或理解选择器来实现这个目标:什么是 SKAction 中的选择器:perform(_:onTarget:)

但看起来可能需要了解使用 Selector 所需的确切语法才能在 Swift 中设置此布尔值。我也不知道那是什么,也不知道该怎么做。

但是任何其他设置这个布尔值的方法(在 Swift 中)当然没问题。

0 投票
0 回答
367 浏览

swift - 在 Swift/SpriteKit 中,你可以在 CropNode 中使用 ShapeNode 作为蒙版吗

我一直在尝试SKShapeNode使用 a 将随机形状与纹理结合起来,SKCropNode但它似乎不起作用。我假设SKCropNodes仅适用于位图图形,例如 PNG。

在这种情况下,什么都不会出现。如果我不设置:

cropSprite 显示为添加了纹理的普通精灵。

有任何想法吗?

非常感谢,千瓦

0 投票
1 回答
126 浏览

swift - SpriteKit 中的遮罩和物理

在 SpriteKit 中使用SKCropNode时,遮罩是否会影响节点的物理特性?(例如,我裁剪了一半的精灵,一个球会从图像的蒙版部分掉下来吗?)如果是这种情况,我将如何创建 SKCropNode 以便它在我触摸的地方裁剪?

干杯

0 投票
1 回答
643 浏览

swift - Swift 3:在 SKSpriteNode 上挖一个洞

首先:我知道,这个问题在这里已经有很多答案了,但是他们并没有帮助我解决这个问题。

我编写了一个小游戏。在第一次发布时有一个小教程,其中一点一点地解释了游戏的每个元素。在每一步中,我都想强调其中一个元素。所以我在元素前面放了一个 alpha 为 0.9 的黑色 SKSpriteNode。如果一个元素应该被突出显示,SpriteNode 应该在此时变得透明。所以我制作了一个 SKCropNode 和一个掩码,如下面的代码所示(我只是向您展示了基本部分):

我在这里找到了这个解决方案:https ://stackoverflow.com/a/40710050/8162321 我在不同的设备和模拟器上测试了它。我的问题是,它在 Xcode 8 和 Xcode 9 Beta 的模拟器中都能完美运行,但在装有 iOS 10.3.3 的 iPhone 和装有 iOS 11 Beta 的 iPhone 上都没有。在 iPhone 上,除了亮点之外,整个应用程序都运行良好。

图片:

模拟器上的一个教程点

在 iPhone 上也一样

你能告诉我为什么不一样吗?我以前从未见过这样的事情。

0 投票
0 回答
908 浏览

ios - 使用 SKShapeNode 作为 SKCropNode (Swift) 的掩码

如何将 anSKShapeNode用作 an 的掩码SKCropNode?我的代码当前创建了一个SKShapeNode圆圈,然后将裁剪节点蒙版设置为它

但是当我添加Node作为cropNode的孩子时,它只画一个红色圆圈(就像我设置的那样)

有什么方法可以使用 anSKShapeNode作为 an 的掩码SKCropNode吗?

-更新-

我想出了如何制作一个从 SKShapeNode 绘制的 SKSpriteNode

但是现在 SKCropNode 在应用于 SKSpriteNode 时无法正常工作,我该如何解决这个问题?

0 投票
2 回答
632 浏览

ios - Swift SpriteKit 反向遮罩在设备上不起作用,但在模拟器中起作用

完成此操作的代码非常简单:

相同的代码,相同的 iOS,不同的结果 = 没有 bueno

图片

0 投票
0 回答
37 浏览

objective-c - SKCropNode 精度问题

我正在开发一款游戏,我需要在其中叠加几张图像,以便让玩家选择飞机的颜色。我使用以下代码执行此操作:

WhereplaneOutlineImageNameplaneImageNameare 字符串,可用于在我的资产目录中查找图像,并且hero是根节点。然而,当我将它添加到我的场景中时,迷彩涂料超出了轮廓的边界,使整个平面看起来凌乱且不专业。以下是使用的图像:(实际图像是 .pdf,但我将它们转换为 .png 以将它们包含在这篇文章中)

图片名称为<code>planeImageName</code> 迷彩漆 图片名称为 <code>planeOutlineImageName</code> 结果平面

有谁知道为什么会这样?任何帮助深表感谢。

0 投票
1 回答
418 浏览

ios - 掩码 SKSpriteNode

我在我的 sks 文件中添加了几个节点,现在我想向最低节点添加一些掩码SKSpriteNode。结构如下图:

在此处输入图像描述

在哪里

  • 绿色 - wordInfoHolder
  • 红色 - 标签容器
  • whiteText - 标签

现在我想隐藏以红色显示的部分。为了执行这样的操作,我读到了SKCropNode可以使用的。

我能够在场景文件中找到我的所有节点并将它们保存到变量中。

所有 3 个对象均已存储且正确。

现在我想为根对象添加一些掩码。

为此,我准备了蒙版图像:

在此处输入图像描述

并尝试执行以下操作:

但我什么也没看到。我希望看到绿色部分SKSpriteNode

做错了什么?

0 投票
0 回答
329 浏览

ios - SpriteKit SKCropNode 裁剪错误区域

SpriteKit用来绘制图表(具有放大和平移的能力)。

当我使用 anSKCropNode来裁剪图形的网格时,它不会裁剪所需的区域。无论我使用矩形SKShapeNode还是SKSpriteNode(带图像)作为.maskNode.

这是我的代码:

这是两个屏幕截图来说明我的意思:

这是未裁剪其网格的图表。 图表网格未裁剪

这是带有 maskNode 集的图。lightGray 区域是实际rectangularNode的,并且网格被切断的数量比它应该的要少得多。 图形网格裁剪但错误

我的场景被缩放,所以我可以放大而不会像素化。当我禁用缩放(将场景的大小设置为视图的大小)时,错误就会消失。不幸的是,我需要在没有任何像素伪影的情况下进行缩放。

也许有人知道如何解决这个问题。它也可能是 SpriteKit 错误。