问题标签 [sknode]

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 投票
0 回答
97 浏览

ios - 预先计算 SKNode 的 xScale 和 yScale 值

在执行之前[SKAction scaleBy:duration:],我需要预先计算节点的 x 比例和 y 比例。

我正在使用UIPinchGestureRecognizer放大/缩小我的SKScene,所以我这样做(scale是持有UIPinchGestureRecognizer的比例值的变量):

苹果文档说它的scaleBy:duration:工作原理如下:

创建一个将节点的 x 和 y 比例值更改为相对值的操作。

参数

scale添加到节点的 x 和 y 比例值的量。

sec动画的持续时间。

但是,如果我尝试计算未来xScale并且yScale喜欢grassLayer.xScale + scale它会不断给我比例值,这些值实际上并不“看起来”像grassLayer节点在scaleBy:duration:方法执行后具有的值。

那么,我怎样才能正确地预先计算xScale/yScalescaleBy:duration:方法执行之后呢?

0 投票
1 回答
157 浏览

ios - SKAction scaleBy:duration: 方法如何在幕后工作?

需要有一种方法可以在不使用 SKAction 的情况下“按比例缩放”,但它应该像scaleBy:duration:方法一样模拟对 SKNode 的更改。

“scaledBy”节点上的比例因子如何变化?

0 投票
1 回答
82 浏览

ios - 工作不正常,开始和结束位置

我正在尝试在 SKScene 上绘制一些三角函数。我正在为屏幕中的每个点使用 SKShapeNode,因此当它到达左侧时,我会从父级中删除 if。

问题是,由于某种原因,它只在屏幕的一部分上绘制,就好像它被一个较小的视图包含一样。屏幕上的位置与真实屏幕不匹配......例如,如果我把它放在 100它实际上在一个不同的地方..加上它绘制的区域的大小减小了......

底部有一些代码

我希望有人能帮助我!非常感谢!

任何其他可能有助于询问的问题,我会重新编辑帖子。

谢谢!

Example01 Example02

这是一些代码:

0 投票
1 回答
470 浏览

objective-c - 在 for 循环中从 SKNode 数组获取 userData

我在从我的对象中获取 userData 值时遇到了一些问题。我知道正在为对象设置 userData,因为在我的代码中的其他地方我可以毫无问题地访问它。

我创建了一个 SKNode *column3 来保存该列中的所有按钮。像这样添加到场景中:

当我创建按钮时,我将它们分配给适当的列,如下所示:

稍后在我的代码中,我需要遍历 column3 节点组并从该组中的每个对象获取 @"buttonRow" userData。出于某种原因,它只给我“NULL”的值。NSLog 只是我用来测试的东西,它们对我来说并不重要。

当从该列中删除/删除任何按钮时,我需要获取此 userData 以便将所有按钮向下移动以占用屏幕上的任何空白空间。游戏将向下移动按钮并将新按钮添加到顶部以填充列。

我尝试将 column3.children 更改为 self.children,它让我所有的列节点 IE/column1、column2、column3 等都在游戏中。所以我不确定为什么它不起作用。一直在阅读并试图弄清楚一段时间。

任何帮助或提示都会很棒,谢谢。

更新: 这是我使用我创建的按钮类文件创建按钮的方式。

这是创建对象的自定义类文件。

这是创建和添加按钮的类的一部分

0 投票
0 回答
55 浏览

boolean - 检测节点是否已从场景中移除的 BOOL 方法

我正在制作一个砖块破坏类型的游戏,并且需要知道是否所有的砖块都已被破坏以便过渡到获胜屏幕。

我一直在考虑解决这个问题的方法是创建一个 BOOL 方法,每次移除一块砖时都会运行该方法来计算剩下多少砖。如果没有剩下的砖块......移动到胜利场景。

我正在努力解决如何做到这一点的逻辑。

到目前为止,我有:

didBeginContact 方法:

0 投票
1 回答
292 浏览

sprite-kit - 检测 SKEmitterNode 粒子何时与另一个 SKNode 接触

有谁知道我如何检测粒子何时与中SKEmitterNode的 a 接触?SKNodeSKScene

SKNode对于我正在创建的 2D 游戏,我想在粒子与其接触时施加一点力。

0 投票
1 回答
1011 浏览

objective-c - Can an SKSpriteNode Object be Searched by Name

I am creating a game using Apple's SpriteKit, and I am wondering what is the most efficient way to find an SKSpriteNode object after creating it.

In one method I initialize a sprite node and assign a name to it:

Later on inside the touchesBegan:withEvent: method I want to find the previously defined sprite node again and store it so I can run actions on it. First I attempted to do this:

However, I have realized that childNodeWithName: is only available in the SKNode class, not SKSpriteNode. So this does not work. What I am thinking now is that I can create an SKNode object and place my SKSpriteNode inside of it. This way I can search for the SKNode using the above method. This seems a bit convoluted, however. Is there a better way?

0 投票
1 回答
204 浏览

ios - 谁能给我从sknode类调用skscene类方法的例子

在 MyScene 类的子类中SKScene

在员工类子类中SKNode

我想increaseScoreBy:从员工类(的子类SkNode)调用方法

0 投票
2 回答
1443 浏览

ios - 如何在 sprite kit 中使用 SKEmitterNode 来实现“战争迷雾”效果?

我正在尝试使用 SKEmitterNode 创建一个着色器,有点像在洞穴中的口袋妖怪: http ://www.serebii.net/pokearth/maps/johto-hgss/38-route31.png

这是我到目前为止的代码:

这是 SKEmitterNode:http ://postimg.org/image/60zflqjzt/

我有两个想法。第一个是创建一个矩形 SKSpriteNode 并从矩形 SKSpriteNode 中删除 SKEmitterNode。这样,我们就有了一个黑色的矩形,中间有一个“洞”,我们可以看穿它。

第二个是将矩形SKSpriteNode和SKEmitter节点添加到另一个SKNode(区域),然后设置SKEmitterNode的particleBlendMode,最后在颜色函数中设置SKNode(区域)的alpha。例如,如果一个像素的颜色为黑色,则该像素的 alpha 值为 1.0,而另一个像素为白色,则其他像素的 alpha 值为 0.0。

这个问题可能与How to create an alpha mask in iOS using sprite kit在某些方面重复,但由于没有给出好的答案,我认为这不是问题。

非常感谢。

0 投票
2 回答
4780 浏览

sprite-kit - Sprite Kit 离开屏幕时从父级移除 SKNode

我想知道如何在我的 SKNodes 离开屏幕时删除它们,以帮助我的游戏运行得更顺畅。

如何在 Sprite Kit 上执行此操作

非常感谢