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

objective-c - SKLabelNode 定位未按预期工作

我正在开发一款游戏,我需要实现顶部栏,保存分数和其他内容等详细信息。

我的顶栏应该有以下内容(从左到右): - 一个 50x50 的图标,根据级别更改,但大小相同 - 带有一些文本的标签,根据级别更改 - ...其他元素

问题是当标签文本发生变化时,标签有时离图标太远,有时在图标上方(取决于文本长度)

我以为我了解定位,但显然我没有..

scoreImage 在这种情况下是图标。另外..为了使图像完全出现在视图中,我将其定位如下:

我觉得我在这里做错了什么。

任何帮助表示赞赏。

PS标签文本以及图标图像根据级别更改-(void)update:(CFTimeInterval)currentTime {

0 投票
1 回答
194 浏览

objective-c - 如何保持 SKNode 的旋转计数

我正在尝试想出一种方法来累积 SKNode 的旋转。例如,如果一个节点正在滚下一座小山(圆形物理体),我想知道它做了多少次旋转,或者一个累积的角度。当以一种方式旋转并减少另一种方式时,我将需要它增加。

我曾想过跟踪节点的 zRotation 并在每次更新时更新计数,当它从 >0 传递到 <0 时,但这似乎很棘手,因为我必须想出某种范围来检查它可能会错过从快速旋转节点或低帧速率旋转。

任何建议都会很棒!

编辑:这是我的解决方案,它非常适合我的目的

0 投票
1 回答
1512 浏览

sprite-kit - applyImpulse 对 CGPoint SpriteKit

我是 SpriteKit 的新手,游戏开发者,事实上我只是在学习。所以我到了一个点,我应该将一堆节点移动到用户点击位置。到目前为止,我一直在努力计算一个虚拟的直角三角形,并根据边得到角的 sin 和 cos。不幸的是,这让我产生了一种非常强烈的冲动,并没有真正考虑用户的点击位置。

有任何想法吗?

提前致谢。

0 投票
2 回答
1340 浏览

sprite-kit - 如何检测 SKShapeNode 是否被触摸?

我创建了一个 sknodeshape。如何检测我制作的形状是否被触摸(点击)?

这是代码:(我已经解决了)

我的错误是当我创建形状时,我在初始化之前放置了 SKShapeNode 名称。

0 投票
3 回答
1439 浏览

ios - 如何将客户端数据添加到 SKNode / SKSpriteNode?

我正在使用IOS SpriteKit并想知道是否有某种方法可以将客户端数据添加到精灵节点?

例如,我想将特定行为附加到节点、附加属性、与其他节点的关系等。

我不愿意子类化SKNode,因为这似乎会破坏节点只是“视图”的模型/视图/控制器模型。

目前,我保留了一个单独的控制器对象层次结构,但这感觉很笨拙,而且在性能方面也不是很好。

什么是最佳做法?

0 投票
2 回答
266 浏览

ios - SKPhysicsWorld 在缩放节点中模拟物理

我正在尝试构建一个 SpriteKit 游戏,该游戏涉及带有可以放大和缩小的物理主体的关卡。物理世界的行为不像我预期的那样,当缩放级别改变时会导致奇怪的事情发生。

具有物理实体的节点动画并按预期运行。缩放关卡是通过捏合手势来处理的,该手势正在调整包含所有游戏元素的单个“世界节点”的比例。这是一种方便的处理方式,因为缩放场景似乎会做可怕的事情,并且可以轻松地为世界节点顶部的任何游戏界面元素添加单独的未缩放节点。

缩放的工作原理如下:

在正常缩放级别时,一切都很好,并且在视觉上,在不同的缩放级别下一切看起来也很好。问题是当缩放改变时,物理实体继续以相同的速度移动,而不是相对于其他物体的相同速度。结果是当缩小以查看更多场景时,一切都移动得更快。

这似乎是物理世界仅连接到场景并且不知道“世界节点”的调整比例这一事实的副作用。物理体不应该在它们的相对空间中继续以相同的速度移动节点吗?

任何人都可以提供任何关于 SpriteKit 的行为方式的见解,或者如何解决这个问题?

0 投票
2 回答
894 浏览

ios - sprite kit - 当节点被添加到场景时得到通知

我有一个子类,SKNode我希望在将它们添加到场景时收到通知。知道SKNode有一个名为 的属性scene,我尝试使用 KVO,但由于某种原因它不起作用。

当一个节点被添加到场景中时,无论如何都会得到通知?或者也许 KVO 运作良好,但我在这里做错了什么?

0 投票
1 回答
556 浏览

ios - SpriteKit 每 x 秒关闭/打开节点并在关闭时隐藏

我确信这相当简单,但我一直在努力寻找在 SpriteKit 中实现这种效果的最佳方法。我有一个激光节点,我想每隔 x # 秒关闭和打开它。我尝试设置 SKActions 来关闭声音并淡出图像,但我不确定如何让节点知道它在 SKAction 中当前关闭或打开的天气。我想当我的 runAction 中的每个 SKAction 完成时,我正在寻找的是某种类型的回调。这样我就可以设置一个标志来说明激光是打开还是关闭,并在发生碰撞时使用它,这样我就知道如何处理它。我也不确定这是否是解决此问题的最佳方法。谢谢你的帮助。

0 投票
1 回答
310 浏览

ios - 从子类设置超类的属性?

我正在研究一个SKNode名为的子类UtilityNode

我正在为新节点设置一个指定的初始化程序,我在创建新子initWithName:类时尝试初始化超类的名称。SKNode我的印象是我可以写_name = rootName;,但 _name 被标记为未声明。我已经通过使用 Can有人对此有所了解(如您在上面看到的那样)使其正常工作[self setName:rootName];,我这样做是否正确?

0 投票
1 回答
548 浏览

sprite-kit - SpriteKit iOS 7 Sknode 没有被删除

我正在为 iOS 7 开发游戏,它使用 Spritekit。

主要的 skspritenode 是一架直升机,当这架直升机接触到收缩奖励皮卡时,直升机会收缩以使用户更容易导航。以下是按预期工作的缩小直升机的代码(self 指的是直升机 skspritenode):

我有一个持续预定时间的收缩奖金的计时器设置:

如果计时器小于 5 秒,则调用 shrinkWearingOut 函数,该函数将标签添加到淡入淡出的节点(self 指的是直升机 skspritenode):

一旦计时器达到零,就会调用 disableShrink 函数,它会尝试移除脉动节点并将直升机缩放到其原始大小(self 指的是直升机 skspritenode):

问题#1:这行代码:[[self childNodeWithName:@"wearingOut"] removeFromParent]; 实际上并没有从直升机节点中删除脉动节点,我在这里设置了一个断点并验证该节点不为零,但它似乎仍然没有删除该节点。非常令人沮丧,因为我使用了完全相同的代码行和不同名称的不同奖励拾取,它工作得很好。唯一的区别是另一个奖励拾取是使用 skshapenode,无论哪种方式它们都从 sknode 继承,所以它们的功能应该相同。

问题#2:脉冲节点已成功添加,但仅脉冲几次,我觉得这很奇怪,因为我在不同的奖励上使用了确切的一组 skaction,并且该奖励脉冲直到它从直升机节点中删除。