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

animation - SpriteKit(SKCropNode)中的动画蒙版图像

我正在使用 Sprite Kit 来创建我的第一个 iOS 应用程序,但我遇到了一个看似非常基本的问题。

我正在尝试为fillNodeSKCropNode ( cropNode) 的内容 ( ) 设置动画。下面的代码很好地设置了 SKScene(我看到插图被正确掩盖,放置在正确位置的背景图像上)......

...但我无法访问蒙版插图以对其位置进行动画处理(我希望它从蒙版外部开始并滑入位置):

我只能为整个logoContent而不是它的子节点设置动画。

有什么想法我哪里出错了吗?

0 投票
5 回答
11049 浏览

objective-c - 是否可以在 Sprite Kit 中使用圆形(SKShapeNode)作为蒙版?

我正在尝试在 Sprite Kit 项目中创建一个圆形蒙版。我创建这样的圆圈(将其定位在屏幕的中心):

并进一步向下代码,我将其设置为掩码cropNode

...但不是显示在圆圈内的内容,而是掩码显示为正方形。

是否可以使用 aSKShapeNode作为蒙版,还是我需要使用图像?

0 投票
3 回答
1447 浏览

objective-c - SKCropNode 掩蔽边缘抗锯齿

我使用精灵套件 SKCropNode 类创建了一个圆形遮罩并为遮罩内的精灵设置动画。但是面具的边缘看起来像素化了。

有没有办法使用抗锯齿来平滑边缘?

0 投票
1 回答
2762 浏览

ios - SKCropNode 将裁剪部分作为 SKSpriteNode

我对 SKCropNode 应用了一个蒙版,我现在看到了我需要的东西,但是裁剪的节点具有完整图像的大小我只想访问裁剪的部分而不是完整的图像我可以将它放入 SKSpriteNode 吗?

这是我的代码

这是图像和结果:

蒙版图片

图片

结果

提前致谢

0 投票
0 回答
339 浏览

ios7 - SKCropNode - 响应触摸的裁剪节点

我正在尝试使用 SKCropNode 制作一种滚动视图。滚动视图的大小设置为遮罩节点,然后当子节点移出遮罩区域时,它们会被裁剪。我在这个滚动视图上放置了各种子类 SKSpriteNode,每个都有自己的触摸事件。但是,即使被裁剪,它们仍然会响应触摸事件!

任何人都可以提出解决此问题的方法吗?

0 投票
0 回答
552 浏览

ios - 将掩码应用于 SKEmitterNodes

可能有人可以帮我...我正在尝试在他们自己的 SKCropNodes 中添加几个 SKEmitterNodes。

我的代码:

这是结果:

在此处输入图像描述

如您所见,我的红色粒子在左侧蒙版下呈现...为什么?

我试图通过以下方式减小面罩的大小:

这是结果:

在此处输入图像描述

我认为这是渲染缓冲区的问题,或者可能是关于 zPosition 的问题,或者是一个错误,或者可能是我真的迷路了。

谢谢

0 投票
1 回答
1016 浏览

ios7 - iOS 7 iPad SpriteKit - 使用不规则的 SKShapeNode 作为 SKCropNode 的掩码

有谁知道如何使用不规则形状节点使用 iOS 的 spritekit 裁剪图像?问题是当我对其进行 skcrop 时,形状有 2 层,因此裁剪失败。要裁剪一个必须使用单层。知道如何在加载场景之前先栅格化形状吗?我已经尝试过 skeffectnode 和 shouldRasterize ,但这也失败了,很可能是因为它也包含 2 个孩子,或者在加载场景后发生光栅化。我也尝试将形状转换为纹理,但由于与 skeffectnode 相同的原因而失败。我已经查看了有关堆栈溢出的其他可能解决方案,但似乎没有一个有效或仅限于正方形,所以我认为这是一个只能存在于 iOS7 中的错误,所以请不要

现在所有迹象都表明不使用带有填充的 skshapenode 来裁剪图像。

0 投票
0 回答
279 浏览

sprite-kit - SpriteKit:确定命中测试的绘制顺序

我正在使用 Spritekit 并希望进行一次命中测试,这很直观。换句话说:我得到了一个位置 x,y 并想找出哪个是被击中的最顶部的节点。(而“最顶层”是指用户实际认为最顶层的那个。)

我没有找到任何 SpriteKit 的预定义功能,可以为我提供此功能。实际上,我发现 SpriteKit 本身使用了一些反直觉的命中测试,请参见此处

我自己实现这一点的想法是计算一些全局 z 排序,就像Dobroćudni Tapir在此处的答案中所描述的那样。

我认为这可能有效,让我感到困惑的是文档中的声明:

重要提示:SKCropNode 和 SKEffectNode 节点类会改变场景渲染行为。这些节点的子节点被独立渲染为单独的节点树,结果被渲染到包含裁剪或效果节点的树中。有关更多信息,请参阅使用其他节点类型。

要在“了解节点树的绘制顺序”下找到此处。

我没有找到提到的“使用其他节点类型”点,所以我不知道 SKCropNodes 或 SKEffectNodes 如何以及为什么应该更改绘图顺序......

因此,以下问题的答案可以帮助我:

  • SpriteKit 是否提供一些功能来检索绘图顺序?
  • 如果没有,您认为我的自定义实现有效吗?(作物或效果节点如何破坏它?)
  • 你能给我指出关于这个问题的信息吗?喜欢缺少的“与其他节点一起工作”文章吗?

更新:

我刚刚发现这里报告的行为不正确。

正如评论中提到的,我被指向 nodeAtPosition 或 nodesAtPosition。我在这里使用了代码并对其进行了测试。

结果并不令人满意。两个问题:

  1. 在 nodesAtPosition 中设置的 zPosition 被忽略。独立如果蓝色或红色方块在前面,我在nodesAtPosition中返回的数组中得到相同的顺序。
  2. 这些函数使用累积帧。但在一个完美的情况下,我想使用每个节点的确切大小而不是累积的帧。

一些图片到1。: 在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
672 浏览

ios - iOS SpriteKit 在无限循环中运行进度条

TL;DR - 在 spritekit 中,在 while 循环中,我使用 for 循环来执行任意工作以延迟 while 循环的下一次调用,这样我的电源条就不会运行得非常快。有没有更好的方法可以在 spritekit 中进行小幅延迟?

嘿大家,

我正在制作一款游戏,其中涉及用户在发射炮弹之前设置大炮的功率。我希望电源条从 0-100 到 100-0 并像这样循环。当用户点击按钮时,电源条会运行,一旦他们释放,我就会根据电源条的位置计算弹丸的速度。我的计划是使用 SKCropNode 根据进度条的进度显示进度条图像。使用以下进度条类可以很好地工作:

我使用这个函数来更新电源条(它使用 for 循环来延迟条的更新):

在初始化 powerbar 之后,我按如下方式调用 power bar:

0 投票
1 回答
505 浏览

objective-c - SpriteKit SKCropNode 掩盖一切

我正在尝试使用 SKCropNode 类屏蔽节点。我在 SKCropNode 继承类中使用我自己的 init 方法来执行此操作:

它按预期工作: 矩形蒙版

现在,我想使用以下代码为场景和裁剪的宇宙飞船添加背景:

我刚刚添加了几行并在开头添加了背​​景(裁剪的节点行保持不变)

这是我现在得到的:背景+蒙版

这是预期的行为吗?为什么裁剪的宇宙飞船消失了?